window.onload=init;function init(){writeDate();if(typeof sIFR=="function"){sIFR.replaceElement(named({sSelector:"h1 span",sFlashSrc:"swf/vandenkeere.swf",sColor:"#000000",sLinkColor:"#000000",sBgColor:"#e9e6d5",sHoverColor:"#CCCCCC"}));sIFR.replaceElement(named({sSelector:"h1 span.highlight",sFlashSrc:"swf/vandenkeere.swf",sColor:"#266863",sLinkColor:"#000000",sBgColor:"#e9e6d5",sHoverColor:"#CCCCCC"}));};}
function writeDate(){var date=new Date();var day=date.getDate();var month=date.getMonth()+1;var year=date.getFullYear();if(month==1)monthName=("January");else if(month==2)monthName=("February");else if(month==3)monthName=("March");else if(month==4)monthName=("April");else if(month==5)monthName=("May");else if(month==6)monthName=("June");else if(month==7)monthName=("July");else if(month==8)monthName=("August");else if(month==9)monthName=("September");else if(month==10)monthName=("October");else if(month==11)monthName=("November");else monthName=("December");var e=document.getElementById("date");var textDay=document.createTextNode(day+" ");var textMonth=document.createTextNode(monthName+" ");var textYear=document.createTextNode(year);e.appendChild(textDay);e.appendChild(textMonth);e.appendChild(textYear);}
function sendMail(frmName){var objVar=new getObjVars();objVar.fieldN[0]="firstname";objVar.fieldV[0]="Please enter your first name";objVar.fieldT[0]="text";objVar.fieldI[0]="first_nameID";objVar.fieldN[1]="surname";objVar.fieldV[1]="Please enter your surname";objVar.fieldT[1]="text";objVar.fieldI[1]="surnameID";objVar.fieldN[2]="email";objVar.fieldV[2]="Please enter your email";objVar.fieldT[2]="text";objVar.fieldI[2]="emailID";objVar.fieldN[3]="phone";objVar.fieldV[3]="Please enter your phone";objVar.fieldT[3]="text";objVar.fieldI[3]="phoneID";if(validateForm(frmName,objVar)){var ajaxVar=new ajaxVars();ajaxVar.incModule='property';ajaxVar.vars['action']="runFunction";ajaxVar.vars['func']="sendMailINC";ajaxVar.vars['nosplit']=1;ajaxVar.vars['email']=eval("document."+frmName+".email.value");ajaxVar.vars['firstname']=eval("document."+frmName+".firstname.value");ajaxVar.vars['surname']=eval("document."+frmName+".surname.value");ajaxVar.vars['phone']=eval("document."+frmName+".phone.value");ajaxVar.vars['property_code']=eval("document."+frmName+".property_code.value");ajaxVar.fnVars['frmID']=frmName;ajaxVar.fnVars['objVar']=objVar;ajaxVar.gotoFunction='confirmEmailSend';ajaxVar.AjaxPostSQL();}}
function sendMail2(frmName){var objVar=new getObjVars();objVar.fieldN[0]="firstname";objVar.fieldV[0]="Please enter your first name";objVar.fieldT[0]="text";objVar.fieldI[0]="first_nameID";objVar.fieldN[1]="surname";objVar.fieldV[1]="Please enter your surname";objVar.fieldT[1]="text";objVar.fieldI[1]="surnameID";objVar.fieldN[2]="emailaddr";objVar.fieldV[2]="Please enter your email";objVar.fieldT[2]="text";objVar.fieldI[2]="emailaddrID";objVar.fieldN[3]="phone";objVar.fieldV[3]="Please enter your phone";objVar.fieldT[3]="text";objVar.fieldI[3]="phoneID";if(validateForm(frmName,objVar)){var ajaxVar=new ajaxVars();ajaxVar.incModule='property';ajaxVar.vars['action']="runFunction";ajaxVar.vars['func']="sendMailINCMULTI";ajaxVar.vars['nosplit']=1;ajaxVar.vars['emailaddr']=eval("document."+frmName+".emailaddr.value");ajaxVar.vars['firstname']=eval("document."+frmName+".firstname.value");ajaxVar.vars['surname']=eval("document."+frmName+".surname.value");ajaxVar.vars['phone']=eval("document."+frmName+".phone.value");if(eval("document."+frmName+".area.value")){ajaxVar.vars['area']=eval("document."+frmName+".area.value");}
ajaxVar.vars['phone']=eval("document."+frmName+".phone.value");ajaxVar.vars['property_code']=eval("document."+frmName+".property_code.value");ajaxVar.fnVars['frmID']=frmName;ajaxVar.fnVars['objVar']=objVar;ajaxVar.gotoFunction='confirmEmail2Send';ajaxVar.AjaxPostSQL();}}
function confirmEmailSend(dataArr,fnVars){var retVal=validateForm(fnVars['frmID'],fnVars['objVar']);if(dataArr==1){window.location="hampstead-thankyou-enquiry.html";}else if(dataArr==2){window.location="hampstead-garden-suburb-thankyou-enquiry.html";}else if(dataArr==3){window.location="highgate-thankyou-enquiry.html";}else if(dataArr==4){window.location="kenwood-thankyou-enquiry.html";}else{window.location="thankyou-enquiry.html";}}
function confirmEmail2Send(dataArr,fnVars){var retVal=validateForm(fnVars['frmID'],fnVars['objVar']);if(dataArr==1){window.location="hampstead-thankyou-enquiry.html";}else if(dataArr==2){window.location="hampstead-garden-suburb-thankyou-enquiry.html";}else if(dataArr==3){window.location="highgate-thankyou-enquiry.html";}else if(dataArr==4){window.location="kenwood-thankyou-enquiry.html";}else{window.location="thankyou-enquiry.html";}}
function AlertSaleProperty(frmName){var objVar=new getObjVars();objVar.fieldN[0]="name";objVar.fieldV[0]="Please enter your name";objVar.fieldT[0]="text";objVar.fieldI[0]="nameID";objVar.fieldN[2]="email";objVar.fieldV[2]="Please enter your email";objVar.fieldT[2]="text";objVar.fieldI[2]="emailID";objVar.fieldN[3]="password";objVar.fieldV[3]="Please enter your password";objVar.fieldT[3]="text";objVar.fieldI[3]="passwordID";if(validateForm(frmName,objVar)){var ajaxVar=new ajaxVars();ajaxVar.incModule='property';ajaxVar.vars['action']="phpArray";ajaxVar.vars['func']="setAlertSalePropertyINC";ajaxVar.vars['nosplit']=1;ajaxVar.vars['name']=eval("document."+frmName+".name.value");ajaxVar.vars['email']=eval("document."+frmName+".email.value");ajaxVar.vars['password']=eval("document."+frmName+".password.value");ajaxVar.vars['frequency']=eval("document."+frmName+".frequency.value");ajaxVar.vars['type']=eval("document."+frmName+".type.value");ajaxVar.vars['f_price']=eval("document."+frmName+".f_price.value");ajaxVar.vars['t_price']=eval("document."+frmName+".t_price.value");ajaxVar.fnVars['pass']=eval("document."+frmName+".password.value");ajaxVar.fnVars['email']=eval("document."+frmName+".email.value");ajaxVar.gotoFunction='showAlertInfo';ajaxVar.AjaxPostSQL();}
return false;}
function showAlertInfo(dataArr,fnVars){switch(dataArr['errorType'].toString()){case'1':document.TblAlert.password=fnVars['pass'];document.TblAlert.email=fnVars['email'];document.TblAlert.setAttribute("action","profile.php");document.TblAlert.submit();return 1;inlineErrMsg(1,'alertMsgID','Modify your information and click save.',3,'alertMsgID');getMoreHeight();slidedown('form2ID');var emnts=document.TblAlert2.elements;document.TblAlert2.type.value=dataArr['type'];document.TblAlert2.f_price.value=dataArr['f_price'];document.TblAlert2.t_price.value=dataArr['t_price'];document.TblAlert2.id.value=dataArr['id'];document.TblAlert2.email.value=dataArr['email'];document.TblAlert2.frequency.value=dataArr['frequency'];break;case'2':window.location="thankyou-alert.html";break;case'3':inlineErrMsg(1,'alertMsgID','Password mismatch.',3,'alertMsgID');break;}}
function AlertSaleProperty1(frmName){var objVar=new getObjVars();objVar.fieldN[0]="name";objVar.fieldV[0]="Please enter your name";objVar.fieldT[0]="text";objVar.fieldI[0]="nameID";objVar.fieldN[2]="email";objVar.fieldV[2]="Please enter your email";objVar.fieldT[2]="text";objVar.fieldI[2]="emailID";objVar.fieldN[3]="password";objVar.fieldV[3]="Please enter your password";objVar.fieldT[3]="text";objVar.fieldI[3]="passwordID";if(validateForm(frmName,objVar)){var ajaxVar=new ajaxVars();ajaxVar.incModule='property';ajaxVar.vars['action']="phpArray";ajaxVar.vars['func']="setAlertSalePropertyINC";ajaxVar.vars['nosplit']=1;ajaxVar.vars['name']=eval("document."+frmName+".name.value");ajaxVar.vars['email']=eval("document."+frmName+".email.value");ajaxVar.vars['password']=eval("document."+frmName+".password.value");ajaxVar.vars['frequency']=eval("document."+frmName+".frequency.value");ajaxVar.vars['type']=eval("document."+frmName+".type.value");ajaxVar.vars['f_price']=eval("document."+frmName+".f_price.value");ajaxVar.vars['t_price']=eval("document."+frmName+".t_price.value");ajaxVar.fnVars['pass']=eval("document."+frmName+".password.value");ajaxVar.fnVars['email']=eval("document."+frmName+".email.value");ajaxVar.gotoFunction='showAlertInfo1';ajaxVar.AjaxPostSQL();}
return false;}
function showAlertInfo1(dataArr,fnVars){switch(dataArr['errorType'].toString()){case'1':document.TblAlert3.password=fnVars['pass'];document.TblAlert3.email=fnVars['email'];document.TblAlert3.setAttribute("action","profile.php");document.TblAlert3.submit();return 1;inlineErrMsg(1,'alertMsgID1','Modify your information and click save.',3,'alertMsgID');getMoreHeight();slidedown('form2ID');var emnts=document.TblAlert2.elements;document.TblAlert2.type.value=dataArr['type'];document.TblAlert2.f_price.value=dataArr['f_price'];document.TblAlert2.t_price.value=dataArr['t_price'];document.TblAlert2.id.value=dataArr['id'];document.TblAlert2.email.value=dataArr['email'];document.TblAlert2.frequency.value=dataArr['frequency'];break;case'2':window.location="thankyou-alert.html";break;case'3':inlineErrMsg(1,'alertMsgID1','Password mismatch.',3,'alertMsgID1');break;}}
function saveAlertForm(){var objVar=new getObjVars();objVar.fieldN[0]="password";objVar.fieldV[0]="Please enter password";objVar.fieldT[0]="text";objVar.fieldI[0]="password2ID";objVar.fieldN[2]="repassword";objVar.fieldV[2]="Please re-type password";objVar.fieldT[2]="text";objVar.fieldI[2]="repassword2ID";if(document.getElementById('chkBoxChangePassId').checked)
if(!validateForm('TblAlert2',objVar)||!matchPasswords('password2ID',document.getElementById('password2ID').value,document.getElementById('repassword2ID').value))
return false;var ajaxVar=new ajaxVars();ajaxVar.incModule='property';ajaxVar.vars['action']="runFunction";ajaxVar.vars['func']="saveAlertInfoINC";ajaxVar.vars['nosplit']=1;var emnts=document.TblAlert2.elements;for(i=0;i<emnts.length;i++){if(emnts[i].type=='checkbox'){if(emnts[i].checked)
ajaxVar.vars[emnts[i].name]=1;else
ajaxVar.vars[emnts[i].name]=0;}else{ajaxVar.vars[emnts[i].name]=emnts[i].value;}}
ajaxVar.gotoFunction='showReturnMsg';ajaxVar.AjaxPostSQL();return false;}
function matchPasswords(passObjId,passVal,rePassVal){if(passVal!=rePassVal){inlineErrMsg(1,passObjId,'Password mismatch.',3,passObjId);return false;}else{return true;}}
function showReturnMsg(dataArr,fnVars){removeChildDiv();window.location="thankyou-alert.html";}
function togglePasswordArea(toggledVal){if(toggledVal)
document.getElementById('chgPassTDID').style.visibility='visible';else
document.getElementById('chgPassTDID').style.visibility='hidden';document.TblAlert2.password.value='';}
function getMoreHeight(){if(document.getElementById('form2ID').style.display=='block')
document.getElementById('alert_div').style.height='214px';else
document.getElementById('alert_div').style.height='450px';}
function clearFormData(formName){var emnts=eval("document."+formName+".elements;");for(i=0;i<emnts.length;i++)
if(emnts[i].type=='hidden'||emnts[i].type=='text'||emnts[i].type=='password')
emnts[i].value='';}
function alertDivToggle(){showHideDiv('alert_div');removeChildDiv();clearFormData('TblAlert');clearFormData('TblAlert2');document.getElementById('alert_div').style.height='214px';document.getElementById('form2ID').style.display='none';}
function clearAlertForm(){removeChildDiv();clearFormData('TblAlert');clearFormData('TblAlert2');document.getElementById('alert_div').style.height='214px';document.getElementById('form2ID').style.display='none';}
function alertDivToggle1(){showHideDiv('alert_div1');removeChildDiv();clearFormData('TblAlert3');document.getElementById('alert_div1').style.height='220px';}
function clearAlertForm1(){clearFormData('TblAlert3');document.getElementById('alert_div1').style.height='220px';}
function check_open(){if(document.getElementById('alert_div')){if(document.getElementById('alert_div').style.visibility=='hidden'||document.getElementById('alert_div').style.visibility==''){document.getElementById('alertbtn').src='images/alert_btn.gif';}else{document.getElementById('alertbtn').src='images/alert_over2.gif';}}else{document.getElementById('alertbtn').src='images/alert_btn.gif';}}
function check_open_hover(){if(document.getElementById('alert_div').style.visibility=='visible'){document.getElementById('alertbtn').src='images/alert_over2.gif';}else{document.getElementById('alertbtn').src='images/alert_over.gif';}}
function check_opend(){if(document.getElementById('alert_div1')){if(document.getElementById('alert_div1').style.visibility=='hidden'||document.getElementById('alert_div1').style.visibility==''){document.getElementById('alertbtn1').src='images/alert_btn.gif';}else{document.getElementById('alertbtn1').src='images/alert_over2.gif';}}else{document.getElementById('alertbtn1').src='images/alert_btn.gif';}}
function check_open_hoverd(){if(document.getElementById('alert_div1').style.visibility=='visible'){document.getElementById('alertbtn1').src='images/alert_over2.gif';}else{document.getElementById('alertbtn1').src='images/alert_over.gif';}}
function show_hide_map(divId,postcd){location.href='#map_area'
setTimeout("op_map('"+divId+"','"+postcd+"')",2000);}
function op_map(divId,postcd){mapLoad();usePointFromPostcode(postcd,setCenterToPoint);}
function showOrgImage(imgId,divId){var ajaxVar=new ajaxVars();ajaxVar.incModule='common';ajaxVar.vars['action']="runFunction";ajaxVar.vars['func']="show_main";ajaxVar.vars['nosplit']=1;ajaxVar.vars['imgid']=imgId;ajaxVar.fnVars['divId']=divId;ajaxVar.gotoFunction='show_main_det';ajaxVar.AjaxPostSQL();}
function show_main_det(dataArr,fnVars){var divId=fnVars['divId'];var divObj=document.getElementById(divId);divObj.innerHTML=dataArr;}
function submit_selected(){var searchType=document.getElementById('searchtype').checked;if(searchType){document.sales_form.submit();}else{if(document.getElementById('s_from').value==''||document.getElementById('s_to').value==''){alert('Please enter price range properly');return false;}
document.getElementById('wmin').value=document.getElementById('s_from').value;document.getElementById('wmax').value=document.getElementById('s_to').value;if(document.getElementById('s_type').value=='all'){document.getElementById('rhouse').value='true';document.getElementById('rflat').value='true';}else if(document.getElementById('s_type').value==1){document.getElementById('rflat').value='true';}else{document.getElementById('rhouse').value='true';}
if(document.getElementById('s_order').value=='asc'){document.getElementById('sort_in').value='londonnorth/Glentreelettings.438/__localind';}else{document.getElementById('sort_in').value='londonnorth/Glentreelettings.438/__localind.rev';}
document.rentals_form.submit();}}
function setprice(stVal){var ckObj1=document.getElementById('fprice');var ckObj2=document.getElementById('tprice');if(stVal=='1'){ckObj1.innerHTML="  £<select name=\"s_from\" id=\"s_from\" style=\"margin-left:2px; width:70px;\" class=\"dropbx2\"><option value=0>No Min</option><option value=250000>250k</option><option value=500000>500k</option><option value=1000000>1m</option><option value=2000000>2m</option><option value=5000000>5m</option></select>";ckObj2.innerHTML='  £<select name="s_to" id="s_to" style="margin-left:2px; width:68px;" class="dropbx2"><option value=250000>250k</option><option value=500000>500k</option><option value=1000000>1m</option><option value=2000000>2m</option><option selected value=5000000>5m+</option></select>';}else{ckObj1.innerHTML='  £<input type=text name="s_from" id="s_from" value="10" class="dropbx2" style="margin-left:2px; width:65px; height:16px;" >';ckObj2.innerHTML='  £<input type=text name="s_to" id="s_to" value="50,000" class="dropbx2" style="margin-left:2px; width:65px; height:16px;" > Per Week';}}
function show_enq_form(pid,Obj){var topPos=String(obtenerPosicionY(Obj)+35)+'px';var leftPos=String(obtenerPosicionX(Obj)-121)+'px';document.getElementById('enqfrmDiv').className='vdiv';document.getElementById('enqfrmDiv').style.left=leftPos;document.getElementById('enqfrmDiv').style.top=topPos;document.getElementById('hpcode').value=pid;}
function show_enq_form1(pid,Obj){var topPos=String(obtenerPosicionY(Obj)+55)+'px';var leftPos=String(obtenerPosicionX(Obj)-186)+'px';document.getElementById('enqfrmDiv').className='vdiv';document.getElementById('enqfrmDiv').style.left=leftPos;document.getElementById('enqfrmDiv').style.top=topPos;document.getElementById('hpcode').value=pid;}
function close_enq_form(){document.getElementById('enqfrmDiv').className='hdiv';document.getElementById('msg_0').style.display='none';document.getElementById('msg_1').style.display='none';document.getElementById('msg_2').style.display='none';document.getElementById('msg_3').style.display='none';}
function obtenerPosicionX(elemento)
{var x=0;while(elemento)
{x+=elemento.offsetLeft;elemento=elemento.offsetParent;}
return x;}
function obtenerPosicionY(elemento)
{var y=0;while(elemento)
{y+=elemento.offsetTop;elemento=elemento.offsetParent;}
return y;}

//MOTION PACK JS
var timerlen=5;var slideAniLen=200;var timerID=new Array();var startTime=new Array();var obj=new Array();var endHeight=new Array();var moving=new Array();var dir=new Array();function slidedown(objname){if(moving[objname])
return;if(document.getElementById(objname).style.display!="none"){slideup(objname);return;}
moving[objname]=true;dir[objname]="down";document.getElementById(objname).style.height="180px";startslide(objname);}
function slideup(objname){if(moving[objname])
return;if(document.getElementById(objname).style.display=="none")
return;moving[objname]=true;dir[objname]="up";startslide(objname);}
function slidecartdown(objname){if(moving[objname])
return;if(document.getElementById(objname).style.display!="none")
return;moving[objname]=true;dir[objname]="down";startslide(objname);}
function slidecartup(objname){if(moving[objname])
return;if(document.getElementById(objname).style.display=="none")
return;moving[objname]=true;dir[objname]="up";startslide(objname);}
function startslide(objname){obj[objname]=document.getElementById(objname);endHeight[objname]=parseInt(obj[objname].style.height);startTime[objname]=(new Date()).getTime();if(dir[objname]=="down"){obj[objname].style.height="1px";}
obj[objname].style.display="block";timerID[objname]=setInterval('slidetick(\''+objname+'\');',timerlen);}
function slidetick(objname){var elapsed=(new Date()).getTime()-startTime[objname];if(elapsed>slideAniLen)
endSlide(objname)
else{var d=Math.round(elapsed/slideAniLen*endHeight[objname]);if(dir[objname]=="up")
d=endHeight[objname]-d;obj[objname].style.height=d+"px";}
return;}
function endSlide(objname){clearInterval(timerID[objname]);if(dir[objname]=="up")
obj[objname].style.display="none";obj[objname].style.height=endHeight[objname]+"px";delete(moving[objname]);delete(timerID[objname]);delete(startTime[objname]);delete(endHeight[objname]);delete(obj[objname]);delete(dir[objname]);return;}

//INLINE VALIDATION JS
var MSGTIMER=20;var MSGSPEED=20;var MSGOFFSET=5;var MSGHIDE=3;function inlineMsg(target,string,autohide,setfocusOn,setfocus){var msg;var msgcontent;setfocus=(setfocus)?setfocus:'1';if(!document.getElementById('msg')){msg=document.createElement('div');msg.id='msg';msgcontent=document.createElement('div');msgcontent.id='msgcontent';document.body.appendChild(msg);msg.appendChild(msgcontent);msg.style.filter='alpha(opacity=0)';msg.style.opacity=0;msg.alpha=0;}else{msg=document.getElementById('msg');msgcontent=document.getElementById('msgcontent');}
msgcontent.innerHTML=string;msg.style.display='block';var msgheight=msg.offsetHeight;var targetdiv=document.getElementById(target);var setfocusOnObj=document.getElementById(setfocusOn);if(setfocus==1){}
var targetheight=targetdiv.offsetHeight;var targetwidth=targetdiv.offsetWidth;var topposition=topPosition(targetdiv)-((msgheight-targetheight)/2);var leftposition=leftPosition(targetdiv)+targetwidth+MSGOFFSET;msg.style.top=topposition+'px';msg.style.left=leftposition+'px';clearInterval(msg.timer);msg.timer=setInterval("fadeMsg(1)",MSGTIMER);if(!autohide){autohide=MSGHIDE;}}
function inlineErrMsg(idx,target,string,autohide,setfocusOn){var msg=document.createElement('div');msg.setAttribute('id','msg_'+idx);msg.setAttribute('style','display:none; position:absolute; z-index:300;padding-left:7px;color:#ffffff;');msg.style.display='none';msg.style.position='absolute';msg.style.color='#ffffff';msg.style.padding.left='7px';var msgcontent=document.createElement('div');msgcontent.setAttribute('id','msgcontent_'+idx);msgcontent.setAttribute('style','z-index:300; display:block; background:#003c27; border:2px solid #161827; border-left:none; padding:5px;font-family:Arial; color:#ffffff; z-index:2;');msgcontent.style.background='#161827';msgcontent.style.display='block';msgcontent.style.background='#003c27';msgcontent.style.border.left='none';msgcontent.style.padding='5px';msgcontent.style.zIndex='300';msgcontent.style.color='#ffffff';document.body.appendChild(msg);msg.appendChild(msgcontent);msg.style.filter='alpha(opacity=0)';msg.style.opacity=0;msg.alpha=0;msg.style.display='block';msgcontent.innerHTML=string;var msgheight=msg.offsetHeight;var targetdiv=document.getElementById(target);var setfocusOnObj=document.getElementById(setfocusOn);if(idx==0&&setfocusOnObj!==null){setfocusOnObj.focus();}
var targetheight=targetdiv.offsetHeight;var targetwidth=targetdiv.offsetWidth;var topposition=topPosition(targetdiv)-((msgheight-targetheight)/2);var leftposition=leftPosition(targetdiv)+targetwidth+MSGOFFSET;msg.style.top=topposition+'px';msg.style.left=leftposition+'px';clearInterval(msg.timer);msg.timer=setInterval("fadeErrMsg(1,'msg_"+idx+"')",MSGTIMER);if(!autohide){autohide=MSGHIDE;}}
function hideErrMsg(msgDivId){var msg=document.getElementById(msgDivId);if(!msg.timer){msg.timer=setInterval("fadeErrMsg(0,'"+msgDivId+"')",MSGTIMER);}}
function fadeErrMsg(flag,msgDivId){if(flag==null){flag=1;}
var msg=document.getElementById(msgDivId);var value;if(flag==1){value=msg.alpha+MSGSPEED;}else{value=msg.alpha-MSGSPEED;}
msg.alpha=value;msg.style.opacity=(value/100);msg.style.filter='alpha(opacity='+value+')';if(value>=99){clearInterval(msg.timer);msg.timer=null;}else if(value<=1){msg.style.display="none";clearInterval(msg.timer);document.body.removeChild(msg);}}
function hideMsg(msg){var msg=document.getElementById('msg');if(!msg.timer){msg.timer=setInterval("fadeMsg(0)",MSGTIMER);}}
function fadeMsg(flag){if(flag==null){flag=1;}
var msg=document.getElementById('msg');var value;if(flag==1){value=msg.alpha+MSGSPEED;}else{value=msg.alpha-MSGSPEED;}
msg.alpha=value;msg.style.opacity=(value/100);msg.style.filter='alpha(opacity='+value+')';if(value>=99){clearInterval(msg.timer);msg.timer=null;}else if(value<=1){msg.style.display="none";clearInterval(msg.timer);}}
function leftPosition(target){var left=0;if(target.offsetParent){while(1){left+=target.offsetLeft;if(!target.offsetParent){break;}
target=target.offsetParent;}}else if(target.x){left+=target.x;}
return left;}
function topPosition(target){var top=0;if(target.offsetParent){while(1){top+=target.offsetTop;if(!target.offsetParent){break;}
target=target.offsetParent;}}else if(target.y){top+=target.y;}
return top;}
if(document.images){arrow=new Image(7,80);arrow.src="images/spacer.gif";}
function getObjVars(){this.fieldN=new Array();this.fieldI=new Array();this.fieldT=new Array();this.fieldV=new Array();this.fieldCF=new Array();this.fieldCV=new Array();this.fieldCVE=new Array();this.fieldCM=new Array();this.fieldFocus=new Array();this.setFocus=new Array();this.fieldValidate=new Array();this.fieldValidateMsg=new Array();}
function removeChildDiv(){for(var k=0;k<14;k++){if(document.getElementById('msg_'+k)!=null){document.body.removeChild(document.getElementById('msg_'+k));}}}
function validateForm(formN,objvar){removeChildDiv();var errobjvar=new getObjVars();var k=0;var err="";var frmObj=eval("document."+formN);for(var i=0;i<objvar.fieldN.length;i++){objvar.setFocus[i]=(objvar.setFocus[i])?objvar.setFocus[i]:1;objvar.fieldFocus[i]=(objvar.fieldFocus[i])?objvar.fieldFocus[i]:objvar.fieldI[i];objvar.fieldValidate[i]=(objvar.fieldValidate[i])?objvar.fieldValidate[i]:"";if((objvar.fieldT[i]=="text")||(objvar.fieldT[i]=="select")){var frmElm=eval("frmObj."+objvar.fieldN[i]);if((frmElm.value=="")||(frmElm.value==" ")){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}else if((objvar.fieldN[i].indexOf("E-Mail")>=0)||(objvar.fieldN[i].indexOf("email")>=0)){if(!checkEmail(frmElm.value)){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}else if(objvar.fieldValidate[i]){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}else if(objvar.fieldCF[i]){var frmCElm=eval("frmObj."+objvar.fieldCF[i]);if(frmElm.value!=frmCElm.value){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}else if(objvar.fieldCV[i]){if(frmElm.value!=objvar.fieldCV[i]){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}else if(objvar.fieldCVE[i]){if(frmElm.value==objvar.fieldCVE[i]){var dis_msg=(objvar.fieldCM[i])?objvar.fieldCM[i]:objvar.fieldV[i];errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}else if(objvar.fieldValidateMsg[i]==1){alert('here');var dis_msg=(objvar.fieldValidateMsg[i])?objvar.fieldValidateMsg[i]:objvar.fieldV[i];errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}
if(objvar.fieldT[i]=="radio"){var frmElm=eval("frmObj."+objvar.fieldN[i]);var checkedI=false;var tol_options=frmElm.length;for(var j=0;j<frmElm.length;j++){if(frmElm[j].checked==true){checkedI=true;}}
if(checkedI===false){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}
if(objvar.fieldT[i]=="checkbox"){var frmElm=eval("frmObj."+objvar.fieldN[i]);if(frmElm.checked==false){errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}
if(objvar.fieldT[i]=="validate"){var frmElm=eval("frmObj."+objvar.fieldN[i]);errobjvar.fieldN[k]=objvar.fieldN[i];errobjvar.fieldV[k]=objvar.fieldV[i];errobjvar.fieldT[k]=objvar.fieldT[i];errobjvar.fieldI[k]=objvar.fieldI[i];errobjvar.fieldFocus[i]=objvar.fieldFocus[i];k++;}}
var rt=printAllAndReturn(errobjvar);return rt;}
function printAllAndReturn(errobj){if(errobj.fieldN.length<=0){return true;}
removeChildDiv();for(var i=0;i<errobj.fieldN.length;i++){inlineErrMsg(i,errobj.fieldI[i],errobj.fieldV[i],3,errobj.fieldFocus[i]);}
return false;}
function demo(){var objVar=new getObjVars();objVar.fieldN[0]="demofieldName1";objVar.fieldV[0]="demofield1 error message to be displayed";objVar.fieldT[0]="text";objVar.fieldI[0]="demofieldId1";objVar.fieldN[1]="demofieldName2";objVar.fieldV[1]="demofield2 error message to be displayed";objVar.fieldT[1]="text";objVar.fieldI[1]="demofieldId2";return validateForm('formName',objVar);}
function checkEmail(fieldValue){var chkAt=fieldValue.indexOf("@");var chkDot=fieldValue.indexOf(".");var chkHack=fieldValue.indexOf("@.");var chkHackA=fieldValue.indexOf(".@");if((chkAt>=0)&&(chkDot>=0)&&(chkHack==-1)&&(chkHackA==-1)){return true;}
return false;}

//SPYEFFECT JS
var Spry;if(!Spry)Spry={};Spry.forwards=1;Spry.backwards=2;if(!Spry.Effect)Spry.Effect={};Spry.Effect.Transitions={linearTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+(time/duration)*change;},sinusoidalTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+((-Math.cos((time/duration)*Math.PI)/2)+0.5)*change;},squareTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+Math.pow(time/duration,2)*change;},squarerootTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+Math.sqrt(time/duration)*change;},fifthTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+Math.sqrt((-Math.cos((time/duration)*Math.PI)/2)+0.5)*change;},circleTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;var pos=time/duration;return begin+Math.sqrt(1-Math.pow((pos-1),2))*change;},pulsateTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;return begin+(0.5+Math.sin(17*time/duration)/2)*change;},growSpecificTransition:function(time,begin,change,duration)
{if(time>duration)return change+begin;var pos=time/duration;return begin+(5*Math.pow(pos,3)-6.4*Math.pow(pos,2)+2*pos)*change;}};for(var trans in Spry.Effect.Transitions)
{Spry[trans]=Spry.Effect.Transitions[trans];}
Spry.Effect.Registry=function()
{this.effects=[];};Spry.Effect.Registry.prototype.getRegisteredEffect=function(element,options)
{var a={};a.element=Spry.Effect.getElement(element);a.options=options;for(var i=0;i<this.effects.length;i++)
if(this.effectsAreTheSame(this.effects[i],a))
return this.effects[i].effect;return false;};Spry.Effect.Registry.prototype.addEffect=function(effect,element,options)
{if(!this.getRegisteredEffect(element,options))
{var len=this.effects.length;this.effects[len]={};var eff=this.effects[len];eff.effect=effect;eff.element=Spry.Effect.getElement(element);eff.options=options;}};Spry.Effect.Registry.prototype.effectsAreTheSame=function(effectA,effectB)
{if(effectA.element!=effectB.element)
return false;var compare=Spry.Effect.Utils.optionsAreIdentical(effectA.options,effectB.options);if(compare)
{if(typeof effectB.options.setup=='function')
effectA.options.setup=effectB.options.setup;if(typeof effectB.options.finish=='function')
effectA.options.finish=effectB.options.finish;}
return compare;};var SpryRegistry=new Spry.Effect.Registry;if(!Spry.Effect.Utils)Spry.Effect.Utils={};Spry.Effect.Utils.showError=function(msg)
{alert('Spry.Effect ERR: '+msg);};Spry.Effect.Utils.showInitError=function(effect){Spry.Effect.Utils.showError('The '+effect+' class can\'t be accessed as a static function anymore. '+"\n"+'Please read Spry Effects migration documentation.');return false;};Spry.Effect.Utils.Position=function()
{this.x=0;this.y=0;this.units="px";};Spry.Effect.Utils.Rectangle=function()
{this.width=0;this.height=0;this.units="px";};Spry.Effect.Utils.intToHex=function(integerNum)
{var result=integerNum.toString(16);if(result.length==1)
result="0"+result;return result;};Spry.Effect.Utils.hexToInt=function(hexStr)
{return parseInt(hexStr,16);};Spry.Effect.Utils.rgb=function(redInt,greenInt,blueInt)
{var intToHex=Spry.Effect.Utils.intToHex;var redHex=intToHex(redInt);var greenHex=intToHex(greenInt);var blueHex=intToHex(blueInt);compositeColorHex=redHex.concat(greenHex,blueHex).toUpperCase();compositeColorHex='#'+compositeColorHex;return compositeColorHex;};Spry.Effect.Utils.longColorVersion=function(color){if(color.match(/^#[0-9a-f]{3}$/i)){var tmp=color.split('');var color='#';for(var i=1;i<tmp.length;i++){color+=tmp[i]+''+tmp[i];}}
return color;};Spry.Effect.Utils.camelize=function(stringToCamelize)
{if(stringToCamelize.indexOf('-')==-1){return stringToCamelize;}
var oStringList=stringToCamelize.split('-');var isFirstEntry=true;var camelizedString='';for(var i=0;i<oStringList.length;i++)
{if(oStringList[i].length>0)
{if(isFirstEntry)
{camelizedString=oStringList[i];isFirstEntry=false;}
else
{var s=oStringList[i];camelizedString+=s.charAt(0).toUpperCase()+s.substring(1);}}}
return camelizedString;};Spry.Effect.Utils.isPercentValue=function(value)
{var result=false;if(typeof value=='string'&&value.length>0&&value.lastIndexOf("%")>0)
result=true;return result;};Spry.Effect.Utils.getPercentValue=function(value)
{var result=0;try
{result=Number(value.substring(0,value.lastIndexOf("%")));}
catch(e){Spry.Effect.Utils.showError('Spry.Effect.Utils.getPercentValue: '+e);}
return result;};Spry.Effect.Utils.getPixelValue=function(value)
{var result=0;if(typeof value=='number')return value;var unitIndex=value.lastIndexOf("px");if(unitIndex==-1)
unitIndex=value.length;try
{result=parseInt(value.substring(0,unitIndex),10);}
catch(e){}
return result;};Spry.Effect.Utils.getFirstChildElement=function(node)
{if(node)
{var childCurr=node.firstChild;while(childCurr)
{if(childCurr.nodeType==1)
return childCurr;childCurr=childCurr.nextSibling;}}
return null;};Spry.Effect.Utils.fetchChildImages=function(startEltIn,targetImagesOut)
{if(!startEltIn||startEltIn.nodeType!=1||!targetImagesOut)
return;if(startEltIn.hasChildNodes())
{var childImages=startEltIn.getElementsByTagName('img');var imageCnt=childImages.length;for(var i=0;i<imageCnt;i++)
{var imgCurr=childImages[i];var dimensionsCurr=Spry.Effect.getDimensions(imgCurr);targetImagesOut.push([imgCurr,dimensionsCurr.width,dimensionsCurr.height]);}}};Spry.Effect.Utils.optionsAreIdentical=function(optionsA,optionsB)
{if(optionsA==null&&optionsB==null)
return true;if(optionsA!=null&&optionsB!=null)
{var objectCountA=0;var objectCountB=0;for(var propA in optionsA)objectCountA++;for(var propB in optionsB)objectCountB++;if(objectCountA!=objectCountB)
return false;for(var prop in optionsA)
{var typeA=typeof optionsA[prop];var typeB=typeof optionsB[prop];if(typeA!=typeB||(typeA!='undefined'&&optionsA[prop]!=optionsB[prop]))
return false;}
return true;}
return false;};Spry.Effect.Utils.DoEffect=function(effectName,element,options)
{if(!options)
var options={};options.name=effectName;var ef=SpryRegistry.getRegisteredEffect(element,options);if(!ef)
{ef=new Spry.Effect[effectName](element,options);SpryRegistry.addEffect(ef,element,options);}
ef.start();return true;};if(!Spry.Utils)Spry.Utils={};Spry.Utils.Notifier=function()
{this.observers=[];this.suppressNotifications=0;};Spry.Utils.Notifier.prototype.addObserver=function(observer)
{if(!observer)
return;var len=this.observers.length;for(var i=0;i<len;i++)
if(this.observers[i]==observer)return;this.observers[len]=observer;};Spry.Utils.Notifier.prototype.removeObserver=function(observer)
{if(!observer)
return;for(var i=0;i<this.observers.length;i++)
{if(this.observers[i]==observer)
{this.observers.splice(i,1);break;}}};Spry.Utils.Notifier.prototype.notifyObservers=function(methodName,data)
{if(!methodName)
return;if(!this.suppressNotifications)
{var len=this.observers.length;for(var i=0;i<len;i++)
{var obs=this.observers[i];if(obs)
{if(typeof obs=="function")
obs(methodName,this,data);else if(obs[methodName])
obs[methodName](this,data);}}}};Spry.Utils.Notifier.prototype.enableNotifications=function()
{if(--this.suppressNotifications<0)
{this.suppressNotifications=0;Spry.Effect.Utils.showError("Unbalanced enableNotifications() call!\n");}};Spry.Utils.Notifier.prototype.disableNotifications=function()
{++this.suppressNotifications;};Spry.Effect.getElement=function(ele)
{var element=ele;if(typeof ele=="string")
element=document.getElementById(ele);if(element==null)
Spry.Effect.Utils.showError('Element "'+ele+'" not found.');return element;};Spry.Effect.getStyleProp=function(element,prop)
{var value;var camelized=Spry.Effect.Utils.camelize(prop);try
{if(element.style)
value=element.style[camelized];if(!value)
{if(document.defaultView&&document.defaultView.getComputedStyle)
{var css=document.defaultView.getComputedStyle(element,null);value=css?css.getPropertyValue(prop):null;}
else if(element.currentStyle)
{value=element.currentStyle[camelized];}}}
catch(e){Spry.Effect.Utils.showError('Spry.Effect.getStyleProp: '+e);}
return value=='auto'?null:value;};Spry.Effect.setStyleProp=function(element,prop,value)
{try
{element.style[Spry.Effect.Utils.camelize(prop)]=value;}
catch(e){Spry.Effect.Utils.showError('Spry.Effect.setStyleProp: '+e);}};Spry.Effect.getStylePropRegardlessOfDisplayState=function(element,prop,displayElement)
{var refElement=displayElement?displayElement:element;var displayOrig=Spry.Effect.getStyleProp(refElement,'display');var visibilityOrig=Spry.Effect.getStyleProp(refElement,'visibility');if(displayOrig=='none')
{Spry.Effect.setStyleProp(refElement,'visibility','hidden');Spry.Effect.setStyleProp(refElement,'display','block');if(window.opera)
refElement.focus();}
var styleProp=Spry.Effect.getStyleProp(element,prop);if(displayOrig=='none')
{Spry.Effect.setStyleProp(refElement,'display','none');Spry.Effect.setStyleProp(refElement,'visibility',visibilityOrig);}
return styleProp;};Spry.Effect.makePositioned=function(element)
{var pos=Spry.Effect.getStyleProp(element,'position');if(!pos||pos=='static')
{element.style.position='relative';if(window.opera)
{element.style.top=0;element.style.left=0;}}};Spry.Effect.isInvisible=function(element)
{var propDisplay=Spry.Effect.getStyleProp(element,'display');if(propDisplay&&propDisplay.toLowerCase()=='none')
return true;var propVisible=Spry.Effect.getStyleProp(element,'visibility');if(propVisible&&propVisible.toLowerCase()=='hidden')
return true;return false;};Spry.Effect.enforceVisible=function(element)
{var propDisplay=Spry.Effect.getStyleProp(element,'display');if(propDisplay&&propDisplay.toLowerCase()=='none')
Spry.Effect.setStyleProp(element,'display','block');var propVisible=Spry.Effect.getStyleProp(element,'visibility');if(propVisible&&propVisible.toLowerCase()=='hidden')
Spry.Effect.setStyleProp(element,'visibility','visible');};Spry.Effect.makeClipping=function(element)
{var overflow=Spry.Effect.getStyleProp(element,'overflow');if(!overflow||(overflow.toLowerCase()!='hidden'&&overflow.toLowerCase()!='scroll'))
{var heightCache=0;var needsCache=/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent);if(needsCache)
heightCache=Spry.Effect.getDimensionsRegardlessOfDisplayState(element).height;Spry.Effect.setStyleProp(element,'overflow','hidden');if(needsCache)
Spry.Effect.setStyleProp(element,'height',heightCache+'px');}};Spry.Effect.cleanWhitespace=function(element)
{var childCountInit=element.childNodes.length;for(var i=childCountInit-1;i>=0;i--){var node=element.childNodes[i];if(node.nodeType==3&&!/\S/.test(node.nodeValue))
try
{element.removeChild(node);}
catch(e){Spry.Effect.Utils.showError('Spry.Effect.cleanWhitespace: '+e);}}};Spry.Effect.getComputedStyle=function(element)
{return/MSIE/.test(navigator.userAgent)?element.currentStyle:document.defaultView.getComputedStyle(element,null);};Spry.Effect.getDimensions=function(element)
{var dimensions=new Spry.Effect.Utils.Rectangle;var computedStyle=null;if(element.style.width&&/px/i.test(element.style.width))
dimensions.width=parseInt(element.style.width,10);else
{computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.width&&/px/i.test(computedStyle.width);if(tryComputedStyle)
dimensions.width=parseInt(computedStyle.width,10);if(!tryComputedStyle||dimensions.width==0)
dimensions.width=element.offsetWidth;}
if(element.style.height&&/px/i.test(element.style.height))
dimensions.height=parseInt(element.style.height,10);else
{if(!computedStyle)
computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.height&&/px/i.test(computedStyle.height);if(tryComputedStyle)
dimensions.height=parseInt(computedStyle.height,10);if(!tryComputedStyle||dimensions.height==0)
dimensions.height=element.offsetHeight;}
return dimensions;};Spry.Effect.getDimensionsRegardlessOfDisplayState=function(element,displayElement)
{var refElement=displayElement?displayElement:element;var displayOrig=Spry.Effect.getStyleProp(refElement,'display');var visibilityOrig=Spry.Effect.getStyleProp(refElement,'visibility');if(displayOrig=='none')
{Spry.Effect.setStyleProp(refElement,'visibility','hidden');Spry.Effect.setStyleProp(refElement,'display','block');if(window.opera)
refElement.focus();}
var dimensions=Spry.Effect.getDimensions(element);if(displayOrig=='none')
{Spry.Effect.setStyleProp(refElement,'display','none');Spry.Effect.setStyleProp(refElement,'visibility',visibilityOrig);}
return dimensions;};Spry.Effect.getOpacity=function(element)
{var o=Spry.Effect.getStyleProp(element,"opacity");if(typeof o=='undefined'||o==null)
o=1.0;return o;};Spry.Effect.getBgColor=function(ele)
{return Spry.Effect.getStyleProp(ele,"background-color");};Spry.Effect.intPropStyle=function(e,prop){var i=parseInt(Spry.Effect.getStyleProp(e,prop),10);if(isNaN(i))
return 0;return i;};Spry.Effect.getPosition=function(element)
{var position=new Spry.Effect.Utils.Position;var computedStyle=null;if(element.style.left&&/px/i.test(element.style.left))
position.x=parseInt(element.style.left,10);else
{computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.left&&/px/i.test(computedStyle.left);if(tryComputedStyle)
position.x=parseInt(computedStyle.left,10);if(!tryComputedStyle||position.x==0)
position.x=element.offsetLeft;}
if(element.style.top&&/px/i.test(element.style.top))
position.y=parseInt(element.style.top,10);else
{if(!computedStyle)
computedStyle=Spry.Effect.getComputedStyle(element);var tryComputedStyle=computedStyle&&computedStyle.top&&/px/i.test(computedStyle.top);if(tryComputedStyle)
position.y=parseInt(computedStyle.top,10);if(!tryComputedStyle||position.y==0)
position.y=element.offsetTop;}
return position;};Spry.Effect.getOffsetPosition=Spry.Effect.getPosition;Spry.Effect.Animator=function(options)
{Spry.Utils.Notifier.call(this);this.name='Animator';this.element=null;this.startMilliseconds=0;this.repeat='none';this.isRunning=false;this.timer=null;this.cancelRemaining=0;if(!options)
var options={};if(options.toggle)
this.direction=false;else
this.direction=Spry.forwards;var self=this;if(options.setup!=null)
this.addObserver({onPreEffect:function(){try{self.options.setup(self.element,self);}catch(e){Spry.Effect.Utils.showError('Spry.Effect.Animator.prototype.start: setup callback: '+e);}}});if(options.finish!=null)
this.addObserver({onPostEffect:function(){try{self.options.finish(self.element,self);}catch(e){Spry.Effect.Utils.showError('Spry.Effect.Animator.prototype.stop: finish callback: '+e);}}});this.options={duration:1000,toggle:false,transition:Spry.linearTransition,interval:16};this.setOptions(options);if(options.transition)
this.setTransition(options.transition);if(options.fps)
this.setFps(options.fps);};Spry.Effect.Animator.prototype=new Spry.Utils.Notifier();Spry.Effect.Animator.prototype.constructor=Spry.Utils.Animator;Spry.Effect.Animator.prototype.notStaticAnimator=true;Spry.Effect.Animator.prototype.setOptions=function(options)
{if(!options)
return;for(var prop in options)
this.options[prop]=options[prop];};Spry.Effect.Animator.prototype.setTransition=function(transition){if(typeof transition=='number'||transition=="1"||transition=="2")
switch(parseInt(transition,10))
{case 1:transition=Spry.linearTransition;break;case 2:transition=Spry.sinusoidalTransition;break;default:Spry.Effect.Utils.showError('unknown transition');}
else if(typeof transition=='string')
{if(typeof window[transition]=='function')
transition=window[transition];else if(typeof Spry[transition]=='function')
transition=Spry[transition];else
Spry.Effect.Utils.showError('unknown transition');}
this.options.transition=transition;if(typeof this.effectsArray!='undefined'){var l=this.effectsArray.length;for(var i=0;i<l;i++)
this.effectsArray[i].effect.setTransition(transition);}};Spry.Effect.Animator.prototype.setDuration=function(duration){this.options.duration=duration;if(typeof this.effectsArray!='undefined')
{var l=this.effectsArray.length;for(var i=0;i<l;i++)
{this.effectsArray[i].effect.setDuration(duration);}}};Spry.Effect.Animator.prototype.setFps=function(fps){this.options.interval=parseInt(1000/fps,10);this.options.fps=fps;if(typeof this.effectsArray!='undefined')
{var l=this.effectsArray.length;for(var i=0;i<l;i++)
{this.effectsArray[i].effect.setFps(fps);}}};Spry.Effect.Animator.prototype.start=function(withoutTimer)
{if(!this.element)
return;if(arguments.length==0)
withoutTimer=false;if(this.isRunning)
this.cancel();this.prepareStart();var currDate=new Date();this.startMilliseconds=currDate.getTime();if(this.element.id)
this.element=document.getElementById(this.element.id);if(this.cancelRemaining!=0&&this.options.toggle)
{if(this.cancelRemaining<1&&typeof this.options.transition=='function')
{var startTime=0;var stopTime=this.options.duration;var start=0;var stop=1;var emergency=0;this.cancelRemaining=Math.round(this.cancelRemaining*1000)/1000;var found=false;var middle=0;while(!found)
{if(emergency++>this.options.duration)break;var half=startTime+((stopTime-startTime)/2);middle=Math.round(this.options.transition(half,1,-1,this.options.duration)*1000)/1000;if(middle==this.cancelRemaining)
{this.startMilliseconds-=half;found=true;}
if(middle<this.cancelRemaining)
{stopTime=half;stop=middle;}
else
{startTime=half;start=middle;}}}
this.cancelRemaining=0;}
this.notifyObservers('onPreEffect',this);if(withoutTimer==false)
{var self=this;this.timer=setInterval(function(){self.drawEffect();},this.options.interval);}
this.isRunning=true;};Spry.Effect.Animator.prototype.stopFlagReset=function()
{if(this.timer)
{clearInterval(this.timer);this.timer=null;}
this.startMilliseconds=0;};Spry.Effect.Animator.prototype.stop=function()
{this.stopFlagReset();this.notifyObservers('onPostEffect',this);this.isRunning=false;};Spry.Effect.Animator.prototype.cancel=function()
{var elapsed=this.getElapsedMilliseconds();if(this.startMilliseconds>0&&elapsed<this.options.duration)
this.cancelRemaining=this.options.transition(elapsed,0,1,this.options.duration);this.stopFlagReset();this.notifyObservers('onCancel',this);this.isRunning=false;};Spry.Effect.Animator.prototype.drawEffect=function()
{var isRunning=true;this.notifyObservers('onStep',this);var timeElapsed=this.getElapsedMilliseconds();if(typeof this.options.transition!='function'){Spry.Effect.Utils.showError('unknown transition');return;}
this.animate();if(timeElapsed>this.options.duration)
{isRunning=false;this.stop();}
return isRunning;};Spry.Effect.Animator.prototype.getElapsedMilliseconds=function()
{if(this.startMilliseconds>0)
{var currDate=new Date();return(currDate.getTime()-this.startMilliseconds);}
return 0;};Spry.Effect.Animator.prototype.doToggle=function()
{if(!this.direction)
{this.direction=Spry.forwards;return;}
if(this.options.toggle==true)
{if(this.direction==Spry.forwards)
{this.direction=Spry.backwards;this.notifyObservers('onToggle',this);}
else if(this.direction==Spry.backwards)
{this.direction=Spry.forwards;}}};Spry.Effect.Animator.prototype.prepareStart=function()
{if(this.options&&this.options.toggle)
this.doToggle();};Spry.Effect.Animator.prototype.animate=function(){};Spry.Effect.Animator.prototype.onStep=function(el)
{if(el!=this)
this.notifyObservers('onStep',this);};Spry.Effect.Move=function(element,fromPos,toPos,options)
{this.dynamicFromPos=false;if(arguments.length==3)
{options=toPos;toPos=fromPos;fromPos=Spry.Effect.getPosition(element);this.dynamicFromPos=true;}
Spry.Effect.Animator.call(this,options);this.name='Move';this.element=Spry.Effect.getElement(element);if(!this.element)
return;if(fromPos.units!=toPos.units)
Spry.Effect.Utils.showError('Spry.Effect.Move: Conflicting units ('+fromPos.units+', '+toPos.units+')');this.units=fromPos.units;this.startX=Number(fromPos.x);this.stopX=Number(toPos.x);this.startY=Number(fromPos.y);this.stopY=Number(toPos.y);};Spry.Effect.Move.prototype=new Spry.Effect.Animator();Spry.Effect.Move.prototype.constructor=Spry.Effect.Move;Spry.Effect.Move.prototype.animate=function()
{var left=0;var top=0;var floor=Math.floor;var elapsed=this.getElapsedMilliseconds();if(this.direction==Spry.forwards)
{left=floor(this.options.transition(elapsed,this.startX,this.stopX-this.startX,this.options.duration));top=floor(this.options.transition(elapsed,this.startY,this.stopY-this.startY,this.options.duration));}
else if(this.direction==Spry.backwards)
{left=floor(this.options.transition(elapsed,this.stopX,this.startX-this.stopX,this.options.duration));top=floor(this.options.transition(elapsed,this.stopY,this.startY-this.stopY,this.options.duration));}
this.element.style.left=left+this.units;this.element.style.top=top+this.units;};Spry.Effect.Move.prototype.prepareStart=function()
{if(this.options&&this.options.toggle)
this.doToggle();if(this.dynamicFromPos==true)
{var fromPos=Spry.Effect.getPosition(this.element);this.startX=fromPos.x;this.startY=fromPos.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY;}};Spry.Effect.Size=function(element,fromRect,toRect,options)
{this.dynamicFromRect=false;if(arguments.length==3)
{options=toRect;toRect=fromRect;fromRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.dynamicFromRect=true;}
Spry.Effect.Animator.call(this,options);this.name='Size';this.element=Spry.Effect.getElement(element);if(!this.element)
return;element=this.element;if(fromRect.units!=toRect.units)
{Spry.Effect.Utils.showError('Spry.Effect.Size: Conflicting units ('+fromRect.units+', '+toRect.units+')');return false;}
this.units=fromRect.units;var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);this.originalWidth=originalRect.width;this.originalHeight=originalRect.height;this.startWidth=fromRect.width;this.startHeight=fromRect.height;this.stopWidth=toRect.width;this.stopHeight=toRect.height;this.childImages=new Array();if(this.options.useCSSBox){Spry.Effect.makePositioned(this.element);var intProp=Spry.Effect.intPropStyle;this.startFromBorder_top=intProp(element,'border-top-width');this.startFromBorder_bottom=intProp(element,'border-bottom-width');this.startFromBorder_left=intProp(element,'border-left-width');this.startFromBorder_right=intProp(element,'border-right-width');this.startFromPadding_top=intProp(element,'padding-top');this.startFromPadding_bottom=intProp(element,'padding-bottom');this.startFromPadding_left=intProp(element,'padding-left');this.startFromPadding_right=intProp(element,'padding-right');this.startFromMargin_top=intProp(element,'margin-top');this.startFromMargin_bottom=intProp(element,'margin-bottom');this.startFromMargin_right=intProp(element,'margin-right');this.startFromMargin_left=intProp(element,'margin-left');this.startLeft=intProp(element,'left');this.startTop=intProp(element,'top');}
if(this.options.scaleContent)
Spry.Effect.Utils.fetchChildImages(element,this.childImages);this.fontFactor=1.0;var fontSize=Spry.Effect.getStyleProp(this.element,'font-size');if(fontSize&&/em\s*$/.test(fontSize))
this.fontFactor=parseFloat(fontSize);var isPercent=Spry.Effect.Utils.isPercentValue;if(isPercent(this.startWidth))
{var startWidthPercent=Spry.Effect.Utils.getPercentValue(this.startWidth);this.startWidth=originalRect.width*(startWidthPercent/100);}
if(isPercent(this.startHeight))
{var startHeightPercent=Spry.Effect.Utils.getPercentValue(this.startHeight);this.startHeight=originalRect.height*(startHeightPercent/100);}
if(isPercent(this.stopWidth))
{var stopWidthPercent=Spry.Effect.Utils.getPercentValue(this.stopWidth);this.stopWidth=originalRect.width*(stopWidthPercent/100);}
if(isPercent(this.stopHeight))
{var stopHeightPercent=Spry.Effect.Utils.getPercentValue(this.stopHeight);this.stopHeight=originalRect.height*(stopHeightPercent/100);}
this.enforceVisible=Spry.Effect.isInvisible(this.element);};Spry.Effect.Size.prototype=new Spry.Effect.Animator();Spry.Effect.Size.prototype.constructor=Spry.Effect.Size;Spry.Effect.Size.prototype.animate=function()
{var width=0;var height=0;var fontSize=0;var direction=0;var floor=Math.floor;var elapsed=this.getElapsedMilliseconds();if(this.direction==Spry.forwards){width=floor(this.options.transition(elapsed,this.startWidth,this.stopWidth-this.startWidth,this.options.duration));height=floor(this.options.transition(elapsed,this.startHeight,this.stopHeight-this.startHeight,this.options.duration));direction=1;}else if(this.direction==Spry.backwards){width=floor(this.options.transition(elapsed,this.stopWidth,this.startWidth-this.stopWidth,this.options.duration));height=floor(this.options.transition(elapsed,this.stopHeight,this.startHeight-this.stopHeight,this.options.duration));direction=-1;}
var propFactor=width/this.originalWidth;fontSize=this.fontFactor*propFactor;var elStyle=this.element.style;if(width<0)
width=0;if(height<0)
height=0;elStyle.width=width+this.units;elStyle.height=height+this.units;if(typeof this.options.useCSSBox!='undefined'&&this.options.useCSSBox==true)
{var intProp=Spry.Effect.intPropStyle;var origTop=intProp(this.element,'top');var origLeft=intProp(this.element,'left');var origMarginTop=intProp(this.element,'margin-top');var origMarginLeft=intProp(this.element,'margin-left');var widthFactor=propFactor;var heightFactor=height/this.originalHeight;var border_top=floor(this.startFromBorder_top*heightFactor);var border_bottom=floor(this.startFromBorder_bottom*heightFactor);var border_left=floor(this.startFromBorder_left*widthFactor);var border_right=floor(this.startFromBorder_right*widthFactor);var padding_top=floor(this.startFromPadding_top*heightFactor);var padding_bottom=floor(this.startFromPadding_bottom*heightFactor);var padding_left=floor(this.startFromPadding_left*widthFactor);var padding_right=floor(this.startFromPadding_right*widthFactor);var margin_top=floor(this.startFromMargin_top*heightFactor);var margin_bottom=floor(this.startFromMargin_bottom*heightFactor);var margin_right=floor(this.startFromMargin_right*widthFactor);var margin_left=floor(this.startFromMargin_left*widthFactor);elStyle.borderTopWidth=border_top+this.units;elStyle.borderBottomWidth=border_bottom+this.units;elStyle.borderLeftWidth=border_left+this.units;elStyle.borderRightWidth=border_right+this.units;elStyle.paddingTop=padding_top+this.units;elStyle.paddingBottom=padding_bottom+this.units;elStyle.paddingLeft=padding_left+this.units;elStyle.paddingRight=padding_right+this.units;elStyle.marginTop=margin_top+this.units;elStyle.marginBottom=margin_bottom+this.units;elStyle.marginLeft=margin_left+this.units;elStyle.marginRight=margin_right+this.units;elStyle.left=floor(origLeft+origMarginLeft-margin_left)+this.units;elStyle.top=floor(origTop+origMarginTop-margin_top)+this.units;}
if(this.options.scaleContent)
{for(var i=0;i<this.childImages.length;i++)
{this.childImages[i][0].style.width=propFactor*this.childImages[i][1]+this.units;this.childImages[i][0].style.height=propFactor*this.childImages[i][2]+this.units;}
this.element.style.fontSize=fontSize+'em';}
if(this.enforceVisible)
{Spry.Effect.enforceVisible(this.element);this.enforceVisible=false;}};Spry.Effect.Size.prototype.prepareStart=function()
{if(this.options&&this.options.toggle)
this.doToggle();if(this.dynamicFromRect==true)
{var fromRect=Spry.Effect.getDimensions(this.element);this.startWidth=fromRect.width;this.startHeight=fromRect.height;this.widthRange=this.startWidth-this.stopWidth;this.heightRange=this.startHeight-this.stopHeight;}};Spry.Effect.Opacity=function(element,startOpacity,stopOpacity,options)
{this.dynamicStartOpacity=false;if(arguments.length==3)
{options=stopOpacity;stopOpacity=startOpacity;startOpacity=Spry.Effect.getOpacity(element);this.dynamicStartOpacity=true;}
Spry.Effect.Animator.call(this,options);this.name='Opacity';this.element=Spry.Effect.getElement(element);if(!this.element)
return;if(/MSIE/.test(navigator.userAgent)&&(!this.element.hasLayout))
Spry.Effect.setStyleProp(this.element,'zoom','1');this.startOpacity=startOpacity;this.stopOpacity=stopOpacity;this.enforceVisible=Spry.Effect.isInvisible(this.element);};Spry.Effect.Opacity.prototype=new Spry.Effect.Animator();Spry.Effect.Opacity.prototype.constructor=Spry.Effect.Opacity;Spry.Effect.Opacity.prototype.animate=function()
{var opacity=0;var elapsed=this.getElapsedMilliseconds();if(this.direction==Spry.forwards)
opacity=this.options.transition(elapsed,this.startOpacity,this.stopOpacity-this.startOpacity,this.options.duration);else if(this.direction==Spry.backwards)
opacity=this.options.transition(elapsed,this.stopOpacity,this.startOpacity-this.stopOpacity,this.options.duration);if(opacity<0)
opacity=0;if(/MSIE/.test(navigator.userAgent))
{var tmpval=Spry.Effect.getStyleProp(this.element,'filter');if(tmpval){tmpval=tmpval.replace(/alpha\(opacity=[0-9]{1,3}\)/g,'');}
this.element.style.filter=tmpval+"alpha(opacity="+Math.floor(opacity*100)+")";}
else
this.element.style.opacity=opacity;if(this.enforceVisible)
{Spry.Effect.enforceVisible(this.element);this.enforceVisible=false;}};Spry.Effect.Opacity.prototype.prepareStart=function()
{if(this.options&&this.options.toggle)
this.doToggle();if(this.dynamicStartOpacity==true)
{this.startOpacity=Spry.Effect.getOpacity(this.element);this.opacityRange=this.startOpacity-this.stopOpacity;}};Spry.Effect.Color=function(element,startColor,stopColor,options)
{this.dynamicStartColor=false;if(arguments.length==3)
{options=stopColor;stopColor=startColor;startColor=Spry.Effect.getBgColor(element);this.dynamicStartColor=true;}
Spry.Effect.Animator.call(this,options);this.name='Color';this.element=Spry.Effect.getElement(element);if(!this.element)
return;this.startColor=startColor;this.stopColor=stopColor;this.startRedColor=Spry.Effect.Utils.hexToInt(startColor.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(startColor.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(startColor.substr(5,2));this.stopRedColor=Spry.Effect.Utils.hexToInt(stopColor.substr(1,2));this.stopGreenColor=Spry.Effect.Utils.hexToInt(stopColor.substr(3,2));this.stopBlueColor=Spry.Effect.Utils.hexToInt(stopColor.substr(5,2));};Spry.Effect.Color.prototype=new Spry.Effect.Animator();Spry.Effect.Color.prototype.constructor=Spry.Effect.Color;Spry.Effect.Color.prototype.animate=function()
{var redColor=0;var greenColor=0;var blueColor=0;var floor=Math.floor;var elapsed=this.getElapsedMilliseconds();if(this.direction==Spry.forwards)
{redColor=floor(this.options.transition(elapsed,this.startRedColor,this.stopRedColor-this.startRedColor,this.options.duration));greenColor=floor(this.options.transition(elapsed,this.startGreenColor,this.stopGreenColor-this.startGreenColor,this.options.duration));blueColor=floor(this.options.transition(elapsed,this.startBlueColor,this.stopBlueColor-this.startBlueColor,this.options.duration));}
else if(this.direction==Spry.backwards)
{redColor=floor(this.options.transition(elapsed,this.stopRedColor,this.startRedColor-this.stopRedColor,this.options.duration));greenColor=floor(this.options.transition(elapsed,this.stopGreenColor,this.startGreenColor-this.stopGreenColor,this.options.duration));blueColor=floor(this.options.transition(elapsed,this.stopBlueColor,this.startBlueColor-this.stopBlueColor,this.options.duration));}
this.element.style.backgroundColor=Spry.Effect.Utils.rgb(redColor,greenColor,blueColor);};Spry.Effect.Color.prototype.prepareStart=function()
{if(this.options&&this.options.toggle)
this.doToggle();if(this.dynamicStartColor==true)
{this.startColor=Spry.Effect.getBgColor(element);this.startRedColor=Spry.Effect.Utils.hexToInt(startColor.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(startColor.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(startColor.substr(5,2));this.redColorRange=this.startRedColor-this.stopRedColor;this.greenColorRange=this.startGreenColor-this.stopGreenColor;this.blueColorRange=this.startBlueColor-this.stopBlueColor;}};Spry.Effect.Cluster=function(options)
{Spry.Effect.Animator.call(this,options);this.name='Cluster';this.effectsArray=new Array();this.currIdx=-1;var _ClusteredEffect=function(effect,kind)
{this.effect=effect;this.kind=kind;this.isRunning=false;};this.ClusteredEffect=_ClusteredEffect;};Spry.Effect.Cluster.prototype=new Spry.Effect.Animator();Spry.Effect.Cluster.prototype.constructor=Spry.Effect.Cluster;Spry.Effect.Cluster.prototype.setInterval=function(interval){var l=this.effectsArray.length;this.options.interval=interval;for(var i=0;i<l;i++)
{this.effectsArray[i].effect.setInterval(interval);}};Spry.Effect.Cluster.prototype.drawEffect=function()
{var isRunning=true;var allEffectsDidRun=false;var baseEffectIsStillRunning=false;var evalNextEffectsRunning=false;if((this.currIdx==-1&&this.direction==Spry.forwards)||(this.currIdx==this.effectsArray.length&&this.direction==Spry.backwards))
this.initNextEffectsRunning();var start=this.direction==Spry.forwards?0:this.effectsArray.length-1;var stop=this.direction==Spry.forwards?this.effectsArray.length:-1;var step=this.direction==Spry.forwards?1:-1;for(var i=start;i!=stop;i+=step)
{if(this.effectsArray[i].isRunning==true)
{baseEffectIsStillRunning=this.effectsArray[i].effect.drawEffect();if(baseEffectIsStillRunning==false&&i==this.currIdx)
{this.effectsArray[i].isRunning=false;evalNextEffectsRunning=true;}}}
if(evalNextEffectsRunning==true)
allEffectsDidRun=this.initNextEffectsRunning();if(allEffectsDidRun==true){this.stop();isRunning=false;for(var i=0;i<this.effectsArray.length;i++)
this.effectsArray[i].isRunning=false;this.currIdx=this.direction==Spry.forwards?this.effectsArray.length:-1;}
return isRunning;};Spry.Effect.Cluster.prototype.initNextEffectsRunning=function()
{var allEffectsDidRun=false;var step=this.direction==Spry.forwards?1:-1;var stop=this.direction==Spry.forwards?this.effectsArray.length:-1;this.currIdx+=step;if((this.currIdx>(this.effectsArray.length-1)&&this.direction==Spry.forwards)||(this.currIdx<0&&this.direction==Spry.backwards))
allEffectsDidRun=true;else
for(var i=this.currIdx;i!=stop;i+=step)
{if((i>this.currIdx&&this.direction==Spry.forwards||i<this.currIdx&&this.direction==Spry.backwards)&&this.effectsArray[i].kind=="queue")
break;this.effectsArray[i].effect.start(true);this.effectsArray[i].isRunning=true;this.currIdx=i;}
return allEffectsDidRun;};Spry.Effect.Cluster.prototype.toggleCluster=function()
{if(!this.direction)
{this.direction=Spry.forwards;return;}
if(this.options.toggle==true)
{if(this.direction==Spry.forwards)
{this.direction=Spry.backwards;this.notifyObservers('onToggle',this);this.currIdx=this.effectsArray.length;}
else if(this.direction==Spry.backwards)
{this.direction=Spry.forwards;this.currIdx=-1;}}
else
{if(this.direction==Spry.forwards)
this.currIdx=-1;else if(this.direction==Spry.backwards)
this.currIdx=this.effectsArray.length;}};Spry.Effect.Cluster.prototype.doToggle=function()
{this.toggleCluster();for(var i=0;i<this.effectsArray.length;i++)
{if(this.effectsArray[i].effect.options&&(this.effectsArray[i].effect.options.toggle!=null))
if(this.effectsArray[i].effect.options.toggle==true)
this.effectsArray[i].effect.doToggle();}};Spry.Effect.Cluster.prototype.cancel=function()
{for(var i=0;i<this.effectsArray.length;i++)
if(this.effectsArray[i].effect.isRunning)
this.effectsArray[i].effect.cancel();var elapsed=this.getElapsedMilliseconds();if(this.startMilliseconds>0&&elapsed<this.options.duration)
this.cancelRemaining=this.options.transition(elapsed,0,1,this.options.duration);this.stopFlagReset();this.notifyObservers('onCancel',this);this.isRunning=false;};Spry.Effect.Cluster.prototype.addNextEffect=function(effect)
{effect.addObserver(this);this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(effect,"queue");if(this.effectsArray.length==1)
{this.element=effect.element;}};Spry.Effect.Cluster.prototype.addParallelEffect=function(effect)
{if(this.effectsArray.length==0||this.effectsArray[this.effectsArray.length-1].kind!='parallel')
effect.addObserver(this);this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(effect,"parallel");if(this.effectsArray.length==1)
{this.element=effect.element;}};Spry.Effect.Cluster.prototype.prepareStart=function()
{this.toggleCluster();};Spry.Effect.Fade=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Fade');Spry.Effect.Cluster.call(this,options);this.name='Fade';var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var durationInMilliseconds=1000;var fromOpacity=0.0;var toOpacity=100.0;var doToggle=false;var transition=Spry.fifthTransition;var fps=60;var originalOpacity=0;if(/MSIE/.test(navigator.userAgent))
originalOpacity=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(this.element,'filter').replace(/alpha\(opacity=([0-9]{1,3})\)/g,'$1'),10);else
originalOpacity=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(this.element,'opacity')*100,10);if(isNaN(originalOpacity))
originalOpacity=100;if(options)
{if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null){if(Spry.Effect.Utils.isPercentValue(options.from))
fromOpacity=Spry.Effect.Utils.getPercentValue(options.from)*originalOpacity/100;else
fromOpacity=options.from;}
if(options.to!=null)
{if(Spry.Effect.Utils.isPercentValue(options.to))
toOpacity=Spry.Effect.Utils.getPercentValue(options.to)*originalOpacity/100;else
toOpacity=options.to;}
if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)transition=options.transition;if(options.fps!=null)fps=options.fps;else this.options.transition=transition;}
fromOpacity=fromOpacity/100.0;toOpacity=toOpacity/100.0;options={duration:durationInMilliseconds,toggle:doToggle,transition:transition,from:fromOpacity,to:toOpacity,fps:fps};var fadeEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);this.addNextEffect(fadeEffect);};Spry.Effect.Fade.prototype=new Spry.Effect.Cluster();Spry.Effect.Fade.prototype.constructor=Spry.Effect.Fade;Spry.Effect.Blind=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Blind');Spry.Effect.Cluster.call(this,options);this.name='Blind';var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var durationInMilliseconds=1000;var doToggle=false;var kindOfTransition=Spry.circleTransition;var fps=60;var doScaleContent=false;Spry.Effect.makeClipping(element);var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var fromHeightPx=originalRect.height;var toHeightPx=0;var optionFrom=options?options.from:originalRect.height;var optionTo=options?options.to:0;var fullCSSBox=false;if(options)
{if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)
{if(Spry.Effect.Utils.isPercentValue(options.from))
fromHeightPx=Spry.Effect.Utils.getPercentValue(options.from)*originalRect.height/100;else
fromHeightPx=Spry.Effect.Utils.getPixelValue(options.from);}
if(options.to!=null)
{if(Spry.Effect.Utils.isPercentValue(options.to))
toHeightPx=Spry.Effect.Utils.getPercentValue(options.to)*originalRect.height/100;else
toHeightPx=Spry.Effect.Utils.getPixelValue(options.to);}
if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;if(options.useCSSBox!=null)fullCSSBox=options.useCSSBox;}
var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=originalRect.width;fromRect.height=fromHeightPx;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=originalRect.width;toRect.height=toHeightPx;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,scaleContent:doScaleContent,useCSSBox:fullCSSBox,from:optionFrom,to:optionTo,fps:fps};var blindEffect=new Spry.Effect.Size(element,fromRect,toRect,options);this.addNextEffect(blindEffect);};Spry.Effect.Blind.prototype=new Spry.Effect.Cluster();Spry.Effect.Blind.prototype.constructor=Spry.Effect.Blind;Spry.Effect.Highlight=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Highlight');Spry.Effect.Cluster.call(this,options);this.name='Highlight';var durationInMilliseconds=1000;var toColor="#ffffff";var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var fps=60;var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var fromColor=Spry.Effect.getBgColor(element);if(fromColor=="transparent")fromColor="#ffff99";if(options)
{if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)fromColor=options.from;if(options.to!=null)toColor=options.to;if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;}
if(fromColor.indexOf('rgb')!=-1)
var fromColor=Spry.Effect.Utils.rgb(parseInt(fromColor.substring(fromColor.indexOf('(')+1,fromColor.indexOf(',')),10),parseInt(fromColor.substring(fromColor.indexOf(',')+1,fromColor.lastIndexOf(',')),10),parseInt(fromColor.substring(fromColor.lastIndexOf(',')+1,fromColor.indexOf(')')),10));if(toColor.indexOf('rgb')!=-1)
var toColor=Spry.Effect.Utils.rgb(parseInt(toColor.substring(toColor.indexOf('(')+1,toColor.indexOf(',')),10),parseInt(toColor.substring(toColor.indexOf(',')+1,toColor.lastIndexOf(',')),10),parseInt(toColor.substring(toColor.lastIndexOf(',')+1,toColor.indexOf(')')),10));var fromColor=Spry.Effect.Utils.longColorVersion(fromColor);var toColor=Spry.Effect.Utils.longColorVersion(toColor);this.restoreBackgroundImage=Spry.Effect.getStyleProp(element,'background-image');options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,fps:fps};var highlightEffect=new Spry.Effect.Color(element,fromColor,toColor,options);this.addNextEffect(highlightEffect);this.addObserver({onPreEffect:function(effect){Spry.Effect.setStyleProp(effect.element,'background-image','none');},onPostEffect:function(effect){Spry.Effect.setStyleProp(effect.element,'background-image',effect.restoreBackgroundImage);if(effect.direction==Spry.forwards&&effect.options.restoreColor)
Spry.Effect.setStyleProp(element,'background-color',effect.options.restoreColor);}});};Spry.Effect.Highlight.prototype=new Spry.Effect.Cluster();Spry.Effect.Highlight.prototype.constructor=Spry.Effect.Highlight;Spry.Effect.Slide=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Slide');Spry.Effect.Cluster.call(this,options);this.name='Slide';var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var durationInMilliseconds=1000;var doToggle=false;var kindOfTransition=Spry.sinusoidalTransition;var fps=60;var slideHorizontally=false;var firstChildElt=Spry.Effect.Utils.getFirstChildElement(element);var direction=-1;if(/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent))
Spry.Effect.makePositioned(element);Spry.Effect.makeClipping(element);if(/MSIE 6.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent))
{var pos=Spry.Effect.getStyleProp(element,'position');if(pos&&(pos=='static'||pos=='fixed'))
{Spry.Effect.setStyleProp(element,'position','relative');Spry.Effect.setStyleProp(element,'top','');Spry.Effect.setStyleProp(element,'left','');}}
if(firstChildElt)
{Spry.Effect.makePositioned(firstChildElt);Spry.Effect.makeClipping(firstChildElt);var childRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(firstChildElt,element);Spry.Effect.setStyleProp(firstChildElt,'width',childRect.width+'px');}
var fromDim=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var initDim=new Spry.Effect.Utils.Rectangle();var toDim=new Spry.Effect.Utils.Rectangle();initDim.width=toDim.width=fromDim.width;initDim.height=toDim.height=fromDim.height;if(!this.options.to){if(!options)
options={};options.to='0%';}
if(options&&options.horizontal!==null&&options.horizontal===true)
slideHorizontally=true;if(options.duration!=null)durationInMilliseconds=options.duration;if(options.from!=null)
{if(slideHorizontally)
{if(Spry.Effect.Utils.isPercentValue(options.from))
fromDim.width=initDim.width*Spry.Effect.Utils.getPercentValue(options.from)/100;else
fromDim.width=Spry.Effect.Utils.getPixelValue(options.from);}
else
{if(Spry.Effect.Utils.isPercentValue(options.from))
fromDim.height=initDim.height*Spry.Effect.Utils.getPercentValue(options.from)/100;else
fromDim.height=Spry.Effect.Utils.getPixelValue(options.from);}}
if(options.to!=null)
{if(slideHorizontally)
{if(Spry.Effect.Utils.isPercentValue(options.to))
toDim.width=initDim.width*Spry.Effect.Utils.getPercentValue(options.to)/100;else
toDim.width=Spry.Effect.Utils.getPixelValue(options.to);}
else
{if(Spry.Effect.Utils.isPercentValue(options.to))
toDim.height=initDim.height*Spry.Effect.Utils.getPercentValue(options.to)/100;else
toDim.height=Spry.Effect.Utils.getPixelValue(options.to);}}
if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;options={duration:durationInMilliseconds,transition:kindOfTransition,scaleContent:false,toggle:doToggle,fps:fps};var size=new Spry.Effect.Size(element,fromDim,toDim,options);this.addParallelEffect(size);if((fromDim.width<toDim.width&&slideHorizontally)||(fromDim.height<toDim.height&&!slideHorizontally))
direction=1;var fromPos=new Spry.Effect.Utils.Position();var toPos=new Spry.Effect.Utils.Position();toPos.x=fromPos.x=Spry.Effect.intPropStyle(firstChildElt,'left');toPos.y=fromPos.y=Spry.Effect.intPropStyle(firstChildElt,'top');toPos.units=fromPos.units;if(slideHorizontally)
toPos.x=parseInt(fromPos.x+direction*(fromDim.width-toDim.width),10);else
toPos.y=parseInt(fromPos.y+direction*(fromDim.height-toDim.height),10);if(direction==1){var tmp=fromPos;var fromPos=toPos;var toPos=tmp;}
options={duration:durationInMilliseconds,transition:kindOfTransition,toggle:doToggle,from:fromPos,to:toPos,fps:fps};var move=new Spry.Effect.Move(firstChildElt,fromPos,toPos,options);this.addParallelEffect(move);};Spry.Effect.Slide.prototype=new Spry.Effect.Cluster();Spry.Effect.Slide.prototype.constructor=Spry.Effect.Slide;Spry.Effect.Grow=function(element,options)
{if(!element)
return;if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Grow');Spry.Effect.Cluster.call(this,options);this.name='Grow';var durationInMilliseconds=1000;var doToggle=false;var doScaleContent=true;var calcHeight=false;var growFromCenter=true;var fullCSSBox=false;var kindOfTransition=Spry.squareTransition;var fps=60;var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;Spry.Effect.makeClipping(element);var dimRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var originalWidth=dimRect.width;var originalHeight=dimRect.height;var propFactor=(originalWidth==0)?1:originalHeight/originalWidth;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=0;fromRect.height=0;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=originalWidth;toRect.height=originalHeight;var optionFrom=options?options.from:dimRect.width;var optionTo=options?options.to:0;var pixelValue=Spry.Effect.Utils.getPixelValue;if(options)
{if(options.growCenter!=null)growFromCenter=options.growCenter;if(options.duration!=null)durationInMilliseconds=options.duration;if(options.useCSSBox!=null)fullCSSBox=options.useCSSBox;if(options.scaleContent!=null)doScaleContent=options.scaleContent;if(options.from!=null)
{if(Spry.Effect.Utils.isPercentValue(options.from))
{fromRect.width=originalWidth*(Spry.Effect.Utils.getPercentValue(options.from)/100);fromRect.height=originalHeight*(Spry.Effect.Utils.getPercentValue(options.from)/100);}
else
{if(calcHeight)
{fromRect.height=pixelValue(options.from);fromRect.width=pixelValue(options.from)/propFactor;}
else
{fromRect.width=pixelValue(options.from);fromRect.height=propFactor*pixelValue(options.from);}}}
if(options.to!=null)
{if(Spry.Effect.Utils.isPercentValue(options.to))
{toRect.width=originalWidth*(Spry.Effect.Utils.getPercentValue(options.to)/100);toRect.height=originalHeight*(Spry.Effect.Utils.getPercentValue(options.to)/100);}
else
{if(calcHeight)
{toRect.height=pixelValue(options.to);toRect.width=pixelValue(options.to)/propFactor;}
else
{toRect.width=pixelValue(options.to);toRect.height=propFactor*pixelValue(options.to);}}}
if(options.toggle!=null)doToggle=options.toggle;if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;}
options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,scaleContent:doScaleContent,useCSSBox:fullCSSBox,fps:fps};var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);this.addParallelEffect(sizeEffect);if(growFromCenter)
{Spry.Effect.makePositioned(element);var startOffsetPosition=new Spry.Effect.Utils.Position();startOffsetPosition.x=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(element,"left"),10);startOffsetPosition.y=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(element,"top"),10);if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,from:optionFrom,to:optionTo,fps:fps};var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+(originalWidth-fromRect.width)/2.0;fromPos.y=startOffsetPosition.y+(originalHeight-fromRect.height)/2.0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+(originalWidth-toRect.width)/2.0;toPos.y=startOffsetPosition.y+(originalHeight-toRect.height)/2.0;var moveEffect=new Spry.Effect.Move(element,fromPos,toPos,options);this.addParallelEffect(moveEffect);}};Spry.Effect.Grow.prototype=new Spry.Effect.Cluster();Spry.Effect.Grow.prototype.constructor=Spry.Effect.Grow;Spry.Effect.Shake=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Shake');Spry.Effect.Cluster.call(this,options);this.options.direction=false;if(this.options.toggle)
this.options.toggle=false;this.name='Shake';var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var durationInMilliseconds=100;var kindOfTransition=Spry.linearTransition;var fps=60;var steps=4;if(options)
{if(options.duration!=null)steps=Math.ceil(this.options.duration/durationInMilliseconds)-1;if(options.fps!=null)fps=options.fps;if(options.transition!=null)kindOfTransition=options.transition;}
Spry.Effect.makePositioned(element);var startOffsetPosition=new Spry.Effect.Utils.Position();startOffsetPosition.x=parseInt(Spry.Effect.getStyleProp(element,"left"),10);startOffsetPosition.y=parseInt(Spry.Effect.getStyleProp(element,"top"),10);if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;var centerPos=new Spry.Effect.Utils.Position;centerPos.x=startOffsetPosition.x;centerPos.y=startOffsetPosition.y;var rightPos=new Spry.Effect.Utils.Position;rightPos.x=startOffsetPosition.x+20;rightPos.y=startOffsetPosition.y+0;var leftPos=new Spry.Effect.Utils.Position;leftPos.x=startOffsetPosition.x+-20;leftPos.y=startOffsetPosition.y+0;options={duration:Math.ceil(durationInMilliseconds/2),toggle:false,fps:fps,transition:kindOfTransition};var effect=new Spry.Effect.Move(element,centerPos,rightPos,options);this.addNextEffect(effect);options={duration:durationInMilliseconds,toggle:false,fps:fps,transition:kindOfTransition};var effectToRight=new Spry.Effect.Move(element,rightPos,leftPos,options);var effectToLeft=new Spry.Effect.Move(element,leftPos,rightPos,options);for(var i=0;i<steps;i++)
{if(i%2==0)
this.addNextEffect(effectToRight);else
this.addNextEffect(effectToLeft);}
var pos=(steps%2==0)?rightPos:leftPos;options={duration:Math.ceil(durationInMilliseconds/2),toggle:false,fps:fps,transition:kindOfTransition};var effect=new Spry.Effect.Move(element,pos,centerPos,options);this.addNextEffect(effect);};Spry.Effect.Shake.prototype=new Spry.Effect.Cluster();Spry.Effect.Shake.prototype.constructor=Spry.Effect.Shake;Spry.Effect.Shake.prototype.doToggle=function(){};Spry.Effect.Squish=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Squish');if(!options)
options={};if(!options.to)
options.to='0%';if(!options.from)
options.from='100%';options.growCenter=false;Spry.Effect.Grow.call(this,element,options);this.name='Squish';};Spry.Effect.Squish.prototype=new Spry.Effect.Grow();Spry.Effect.Squish.prototype.constructor=Spry.Effect.Squish;Spry.Effect.Pulsate=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Pulsate');Spry.Effect.Cluster.call(this,options);this.options.direction=false;if(this.options.toggle)
this.options.toggle=false;var element=Spry.Effect.getElement(element);var originalOpacity=0;this.element=element;if(!this.element)
return;this.name='Pulsate';var durationInMilliseconds=100;var fromOpacity=100.0;var toOpacity=0.0;var doToggle=false;var kindOfTransition=Spry.linearTransition;var fps=60;if(/MSIE/.test(navigator.userAgent))
originalOpacity=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(this.element,'filter').replace(/alpha\(opacity=([0-9]{1,3})\)/g,'$1'),10);else
originalOpacity=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(this.element,'opacity')*100,10);if(isNaN(originalOpacity)){originalOpacity=100;}
if(options)
{if(options.from!=null){if(Spry.Effect.Utils.isPercentValue(options.from))
fromOpacity=Spry.Effect.Utils.getPercentValue(options.from)*originalOpacity/100;else
fromOpacity=options.from;}
if(options.to!=null)
{if(Spry.Effect.Utils.isPercentValue(options.to))
toOpacity=Spry.Effect.Utils.getPercentValue(options.to)*originalOpacity/100;else
toOpacity=options.to;}
if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;}
options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,fps:fps};fromOpacity=fromOpacity/100.0;toOpacity=toOpacity/100.0;var fadeEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);var appearEffect=new Spry.Effect.Opacity(element,toOpacity,fromOpacity,options);var steps=parseInt(this.options.duration/200,10);for(var i=0;i<steps;i++){this.addNextEffect(fadeEffect);this.addNextEffect(appearEffect);}};Spry.Effect.Pulsate.prototype=new Spry.Effect.Cluster();Spry.Effect.Pulsate.prototype.constructor=Spry.Effect.Pulsate;Spry.Effect.Pulsate.prototype.doToggle=function(){};Spry.Effect.Puff=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Puff');Spry.Effect.Cluster.call(this,options);var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;this.name='Puff';var doToggle=false;var doScaleContent=false;var durationInMilliseconds=1000;var kindOfTransition=Spry.fifthTransition;var fps=60;Spry.Effect.makePositioned(element);if(options){if(options.toggle!=null)doToggle=options.toggle;if(options.duration!=null)durationInMilliseconds=options.duration;if(options.transition!=null)kindOfTransition=options.transition;if(options.fps!=null)fps=options.fps;}
var originalRect=Spry.Effect.getDimensions(element);var startWidth=originalRect.width;var startHeight=originalRect.height;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,fps:fps};var fromOpacity=1.0;var toOpacity=0.0;var opacityEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);this.addParallelEffect(opacityEffect);var fromPos=Spry.Effect.getPosition(element);var toPos=new Spry.Effect.Utils.Position;toPos.x=startWidth/2.0*-1.0;toPos.y=startHeight/2.0*-1.0;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,from:fromPos,to:toPos,fps:fps};var moveEffect=new Spry.Effect.Move(element,fromPos,toPos,options);this.addParallelEffect(moveEffect);var self=this;this.addObserver({onPreEffect:function(){if(self.direction==Spry.backwards){self.element.style.display='block';}},onPostEffect:function(){if(self.direction==Spry.forwards){self.element.style.display='none';}}});};Spry.Effect.Puff.prototype=new Spry.Effect.Cluster;Spry.Effect.Puff.prototype.constructor=Spry.Effect.Puff;Spry.Effect.DropOut=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('DropOut');Spry.Effect.Cluster.call(this,options);var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;var durationInMilliseconds=1000;var fps=60;var kindOfTransition=Spry.fifthTransition;var direction=Spry.forwards;var doToggle=false;this.name='DropOut';Spry.Effect.makePositioned(element);if(options)
{if(options.duration!=null)durationInMilliseconds=options.duration;if(options.toggle!=null)doToggle=options.toggle;if(options.fps!=null)fps=options.fps;if(options.transition!=null)kindOfTransition=options.transition;if(options.dropIn!=null)direction=-1;}
var startOffsetPosition=new Spry.Effect.Utils.Position();startOffsetPosition.x=parseInt(Spry.Effect.getStyleProp(element,"left"),10);startOffsetPosition.y=parseInt(Spry.Effect.getStyleProp(element,"top"),10);if(!startOffsetPosition.x)startOffsetPosition.x=0;if(!startOffsetPosition.y)startOffsetPosition.y=0;var fromPos=new Spry.Effect.Utils.Position;fromPos.x=startOffsetPosition.x+0;fromPos.y=startOffsetPosition.y+0;var toPos=new Spry.Effect.Utils.Position;toPos.x=startOffsetPosition.x+0;toPos.y=startOffsetPosition.y+(direction*160);options={from:fromPos,to:toPos,duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,fps:fps};var moveEffect=new Spry.Effect.Move(element,options.from,options.to,options);this.addParallelEffect(moveEffect);var fromOpacity=1.0;var toOpacity=0.0;options={duration:durationInMilliseconds,toggle:doToggle,transition:kindOfTransition,fps:fps};var opacityEffect=new Spry.Effect.Opacity(element,fromOpacity,toOpacity,options);this.addParallelEffect(opacityEffect);var self=this;this.addObserver({onPreEffect:function(){self.element.style.display='block';},onPostEffect:function(){if(self.direction==Spry.forwards){self.element.style.display='none';}}});};Spry.Effect.DropOut.prototype=new Spry.Effect.Cluster();Spry.Effect.DropOut.prototype.constructor=Spry.Effect.DropOut;Spry.Effect.Fold=function(element,options)
{if(!this.notStaticAnimator)
return Spry.Effect.Utils.showInitError('Fold');Spry.Effect.Cluster.call(this,options);var element=Spry.Effect.getElement(element);this.element=element;if(!this.element)
return;this.name='Fold';var durationInMilliseconds=1000;var doToggle=false;var doScaleContent=true;var fullCSSBox=false;var kindOfTransition=Spry.fifthTransition;var fps=fps;Spry.Effect.makeClipping(element);var originalRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(element);var startWidth=originalRect.width;var startHeight=originalRect.height;var stopWidth=startWidth;var stopHeight=startHeight/5;var fromRect=new Spry.Effect.Utils.Rectangle;fromRect.width=startWidth;fromRect.height=startHeight;var toRect=new Spry.Effect.Utils.Rectangle;toRect.width=stopWidth;toRect.height=stopHeight;if(options)
{if(options.duration!=null)durationInMilliseconds=Math.ceil(options.duration/2);if(options.toggle!=null)doToggle=options.toggle;if(options.useCSSBox!=null)fullCSSBox=options.useCSSBox;if(options.fps!=null)fps=options.fps;if(options.transition!=null)kindOfTransition=options.transition;}
options={duration:durationInMilliseconds,toggle:doToggle,scaleContent:doScaleContent,useCSSBox:fullCSSBox,transition:kindOfTransition,fps:fps};var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);this.addNextEffect(sizeEffect);fromRect.width=toRect.width;fromRect.height=toRect.height;toRect.width='0%';var sizeEffect=new Spry.Effect.Size(element,fromRect,toRect,options);this.addNextEffect(sizeEffect);};Spry.Effect.Fold.prototype=new Spry.Effect.Cluster();Spry.Effect.Fold.prototype.constructor=Spry.Effect.Fold;Spry.Effect.DoFade=function(element,options)
{return Spry.Effect.Utils.DoEffect('Fade',element,options);};Spry.Effect.DoBlind=function(element,options)
{return Spry.Effect.Utils.DoEffect('Blind',element,options);};Spry.Effect.DoHighlight=function(element,options)
{return Spry.Effect.Utils.DoEffect('Highlight',element,options);};Spry.Effect.DoSlide=function(element,options)
{return Spry.Effect.Utils.DoEffect('Slide',element,options);};Spry.Effect.DoGrow=function(element,options)
{return Spry.Effect.Utils.DoEffect('Grow',element,options);};Spry.Effect.DoShake=function(element,options)
{return Spry.Effect.Utils.DoEffect('Shake',element,options);};Spry.Effect.DoSquish=function(element,options)
{return Spry.Effect.Utils.DoEffect('Squish',element,options);};Spry.Effect.DoPulsate=function(element,options)
{return Spry.Effect.Utils.DoEffect('Pulsate',element,options);};Spry.Effect.DoPuff=function(element,options)
{return Spry.Effect.Utils.DoEffect('Puff',element,options);};Spry.Effect.DoDropOut=function(element,options)
{return Spry.Effect.Utils.DoEffect('DropOut',element,options);};Spry.Effect.DoFold=function(element,options)
{return Spry.Effect.Utils.DoEffect('Fold',element,options);};


//AJAX JS

var ajaxCallOn=0;var ajaxCallOff=0;var ajaxCallCnt=0;var maintainanceArr=new Array();function encodeStr(str){if(isNaN(str)&&!isArray(str)){str=str.replace(/&/g,'##AND##');str=str.replace(/\+/g,'##ADD##');str=str.replace('=','##EQUAL##');str=str.replace('?','##QUESTION##');str=str.replace('%','##PERCENT##');}
return str;}
function decodeStr(str){str=str.replace('##ADD##','+');str=str.replace('##AND##','&');str=str.replace('##EQUAL##','=');str=str.replace('##QUESTION##','?');str=str.replace('##PERCENT##','%');return str;}
function AjaxInit(){var AjaxObj=false;if(window.XMLHttpRequest){AjaxObj=new XMLHttpRequest();}else if(window.ActiveXObject){AjaxObj=new ActiveXObject("Msxml2.XMLHTTP");if(!AjaxObj){AjaxObj=new ActiveXObject("Microsoft.XMLHTTP");}}
return(AjaxObj);}
function ajaxVars(){this.vars=new Array();this.vars['sqlDB']='0';this.fnVars=new Array();this.dbVars=new Array();this.sendMethod='POST';this.gotoFunction='';this.xmlData='';this.statusDiv='loadingDiv';this.AjaxPostSQL=AjaxPostSQL;this.createData=createData;this.errorData=errorData;this.sqlTracer=sqlTracer;this.xmlOpener=xmlOpener;this.maintainance=maintainance;this.externalErrors=externalErrors;this.session=1;this.sessionVar='sessCPAuth';this.phpFile=_gdoc_root+"lib/ajax.data.php";this.incModule='';this.noLayer=1;this.frontend=false;}
function AjaxPostSQL(){if(ajaxCallCnt)
ajaxCallCnt++;var pageUrl=this.phpFile;if(pageUrl.indexOf('?')<0){pageUrl+='?';}else{pageUrl+='&';}
pageUrl+='random='+Math.random();var queryStr='&dbVars='+this.dbVars;for(key in this.vars){queryStr+='&'+key+'='+encodeStr(this.vars[key]);}
if(this.session){queryStr+='&sessionVar='+this.sessionVar;}
if(this.incModule){queryStr+='&incModule='+this.incModule;}
if(this.sendMethod=='GET'){pageUrl+=queryStr;}
var Ajax=AjaxInit();try{var callObj=this;Ajax.open(this.sendMethod,pageUrl,true);Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');str='';for(key in Ajax){str+=key+"\n";}
Ajax.onreadystatechange=function(){var loadingObj=document.getElementById(callObj.statusDiv);if(Ajax.readyState==4&&Ajax.status==200){var dtStatus=handleAjax(Ajax,callObj);if(dtStatus===false){return false;}
if(ajaxCallCnt)
ajaxCallCnt--;if(loadingObj){if(ajaxCallCnt==0){if(callObj.noLayer==1){hideStatus(loadingObj.id,'Done.');}}}}else if(Ajax.readyState==1){if(loadingObj){var bodyObj=document.getElementsByTagName('BODY')[0];if(callObj.noLayer==1){showStatus(loadingObj.id,'Communicating with the server. Please wait...');}}}else if(Ajax.readyState<4){if(loadingObj){if(callObj.noLayer==1){showStatus(loadingObj.id,'Loading data. Please wait...');}}}else{var statusLostObj=document.getElementById('statusLost');if(statusLostObj){statusLostObj.style.visibility='visible';statusLostObj.style.display='block';}}}
Ajax.send(queryStr);}
catch(e){alert('Error: Unable to contact the server.');}}
function handleAjax(Ajax,callObj){if(Ajax.responseText.indexOf('META HTTP-EQUIV=')>0){if(location.href.indexOf('index.php')<0){parent.parent.location.href='index.php';}
return false;}
if((Ajax.responseText.indexOf('Fatal error'))>=0&&(Ajax.responseText.indexOf('on line'))||(Ajax.responseText.indexOf('Warning'))>=0&&(Ajax.responseText.indexOf('on line'))||(Ajax.responseText.indexOf('Parse error'))>=0&&(Ajax.responseText.indexOf('on line'))){var re=/<[^>]*>/g;var matches=Ajax.responseText.replace(re,'');alert(matches);ajaxCallCnt=0;hideStatus(callObj.statusDiv,'Done.');return false;}
var response=Ajax.responseXML.documentElement;var sessionObj=response.getElementsByTagName('session');var dataObj=response.getElementsByTagName('row');var errorObj=response.getElementsByTagName('sqlerror');var textObj=response.getElementsByTagName('textdata');switch(callObj.vars['action']){case"update":case"modify":if(Ajax.responseText.indexOf('maintainance()')>=0){callObj.maintainance();break;}}
if(callObj.session&&this.frontend==false){var sessionId=sessionObj[0].firstChild.nodeValue;if(!sessionId){parent.parent.pageOpener('login','devArea','err=9');hideStatus(callObj.statusDiv,'Done.');ajaxCallOn=0;ajaxCallOff=0;ajaxCallCnt=0;return false;}}
dataArr=callObj.createData(dataObj,textObj);callObj.errorData(errorObj,dataObj,textObj);callObj.xmlData=Ajax.responseText;var xmlLinkObj=document.getElementById('xmlLink');if(xmlLinkObj){xmlLinkObj.href="javascript:void(0);";xmlLinkObj.mainObj=callObj;xmlLinkObj.onclick=function(e){var hiddenObj=document.getElementById('xmlajaxdata');hiddenObj.value=this.mainObj.xmlData;this.mainObj.xmlOpener();}}
eval(callObj.gotoFunction+'(dataArr, callObj.fnVars)');}
function createData(rowObj,textObj){if(rowObj.length>0){var str='';var dataArr=new Array();var str='';for(var i=0;i<rowObj.length;i++){var colObj=rowObj[i].getElementsByTagName('column');for(var j=0;j<colObj.length;j++){var fieldName=colObj[j].getAttribute('name');switch(this.vars['action']){case"update":case"modify":case'phpArray':case'db_fetch_array':case'db_fetch_row':case'db_fetch_assoc':if(!dataArr[fieldName])dataArr[fieldName]=new Array();dataArr[fieldName][i]=(colObj[j].firstChild)?colObj[j].firstChild.nodeValue:'';break;}}}
return dataArr;}else{if(textObj[0]){return textObj[0].firstChild.nodeValue;}}}
function externalErrors(){var debugDivObj=document.getElementById('debugSql');var errorTags=document.getElementsByTagName('p');if(errorTags.length>0){var errLen=errorTags.length;for(var i=0;i<errLen;i++){var attName=errorTags[0].getAttribute('name');if(attName=='sqlerror'){errorTags[0].name='ajaxsqlerror';errorTags[0].setAttribute('name','ajaxsqlerror');var errorDiv=document.createElement('DIV');errorDiv.innerHTML=errorTags[0].innerHTML;errorDiv.style.fontFamily=errorTags[0].style.fontFamily;errorDiv.style.fontSize=errorTags[0].style.fontSize;errorDiv.style.backgroundColor=errorTags[0].style.backgroundColor;errorDiv.style.color=errorTags[0].style.color;errorDiv.style.padding='5px';errorDiv.setAttribute('name','ajaxsqlerror');debugDivObj.insertBefore(errorDiv,debugDivObj.firstChild);errorTags[0].parentNode.removeChild(errorTags[0]);}}}}
function errorData(dataObj,rowObj,textObj){if(_gsess_sql||_gsess_debug||_gsess_trace){this.sqlTracer();showHideDiv('debugDiv',true);var debugWinObj=document.getElementById('debugDiv');var debugDivObj=document.getElementById('debugSql');var debugObj=document.getElementById('debugData');if(dataObj.length>0){this.externalErrors();for(key=0;key<dataObj.length;key++){var errorData=dataObj[key].getElementsByTagName('p');if(errorData[0].firstChild.nodeValue){var errorText="<DIV NAME=\"ajaxsqlerror\" STYLE=\"padding:5px;"+errorData[0].getAttribute('style')+"\">";errorText+=errorData[0].firstChild.nodeValue;errorText+="</DIV>";debugDivObj.innerHTML=errorText+debugDivObj.innerHTML;}}
var newOut='';if(rowObj.length){for(var i=0;i<rowObj.length;i++){var colObj=rowObj[i].getElementsByTagName('column');newOut+='<hr />';for(var j=0;j<colObj.length;j++){var fieldName=colObj[j].getAttribute('name');newOut+='<span style="color: #F00; font-family: arial; font-size:11px;">'+fieldName+'</span>';newOut+='<span style="color: #000; font-family: arial;font-size:11px;">=</span>';newOut+='<span style="color: #00F; font-family: arial;font-size:11px;">'+colObj[j].firstChild.nodeValue+'</span>';newOut+='<br />';}}}else{newOut+='<hr />';newOut+='<span style="color: #FF0; font-family: arial;font-size:11px;">'+textObj[0].firstChild.nodeValue+'</span>';}
var debugObj=document.getElementById('debugData');if(debugObj){debugObj.innerHTML=newOut+debugObj.innerHTML;}}}else{showHideDiv('debugDiv',false);}}
function sqlTracer(){var debugWinObj=document.getElementById('debugDiv');var debugDivObj=document.getElementById('debugSql');var debugObj=document.getElementById('debugData');var bodyObj=document.getElementsByTagName('BODY')[0];var formObj=document.createElement('FORM');formObj.target='_blank';formObj.method='POST';formObj.name='xmldata';formObj.id='xmldata';formObj.action=_gdoc_root+'echodata.php';var hiddenObj=document.createElement('INPUT');hiddenObj.type='hidden';hiddenObj.name='data';hiddenObj.id='xmlajaxdata';formObj.appendChild(hiddenObj);var hiddenObj=document.createElement('INPUT');hiddenObj.type='hidden';hiddenObj.name='filename';hiddenObj.value='xmldata.xml';hiddenObj.id='xmlfilename';formObj.appendChild(hiddenObj);bodyObj.appendChild(formObj);if(!debugWinObj){var debugWinObj=document.createElement('DIV');debugWinObj.id='debugDiv';debugWinObj.style.position='absolute';debugWinObj.style.top='0px';debugWinObj.style.width='40%';debugWinObj.style.height='80%';debugWinObj.style.backgroundColor='#CCCCCC';debugWinObj.style.cursor='default';bodyObj.appendChild(debugWinObj);var dragDivObj=document.createElement('DIV');dragDivObj.id='debugDrag';dragDivObj.style.backgroundColor='buttonFace';dragDivObj.style.padding='2px 10px 2px 10px';dragDivObj.style.border="1px outset buttonShadow";dragDivObj.style.cursor='move';dragDivObj.style.fontSize='12px';dragDivObj.style.fontFamily='arial';dragDivObj.innerHTML='<B>SQL Tracer</B>';dragDivObj.onmousedown=function(e){var divDrag=new drag;moveDiv(e,divDrag,this.parentNode.id);}
dragDivObj.open=true;dragDivObj.ondblclick=function(e){if(dragDivObj.open){dragDivObj.open=false;showHideDiv('debugSql',false);showHideDiv('tracerSpacer',false);showHideDiv('debugData',false);this.parentNode.style.height=this.parentNode.firstChild.offsetHeight+'px';}else{dragDivObj.open=true;showHideDiv('debugSql',true);showHideDiv('tracerSpacer',true);showHideDiv('debugData',true);this.parentNode.style.height='80%';}}
debugWinObj.appendChild(dragDivObj);var debugDivObj=document.createElement('DIV');debugDivObj.id='debugSql';debugDivObj.style.height='40%';debugDivObj.style.padding='10px';debugDivObj.style.overflow='auto';debugDivObj.style.backgroundColor='#CCCCCC';debugWinObj.appendChild(debugDivObj);var spacerDivObj=document.createElement('DIV');spacerDivObj.id='tracerSpacer';var xmlLinkObj=document.createElement('A');xmlLinkObj.href="javascript:void(0);";xmlLinkObj.innerHTML='XML output';xmlLinkObj.style.fontSize='11px';xmlLinkObj.style.fontFamily='arial';xmlLinkObj.mainObj=this;xmlLinkObj.id='xmlLink';xmlLinkObj.onclick=function(e){this.mainObj.xmlOpener();}
spacerDivObj.appendChild(xmlLinkObj);spacerDivObj.style.textAlign='right';spacerDivObj.style.padding='5px 10px 5px 0px';debugWinObj.appendChild(spacerDivObj);var newHeight=debugWinObj.offsetHeight-dragDivObj.offsetHeight-dragDivObj.offsetHeight-debugDivObj.offsetHeight-spacerDivObj.offsetHeight;var debugObj=document.createElement('DIV');debugObj.id='debugData';debugObj.style.backgroundColor='#CCCCCC';debugObj.style.height=newHeight+'px';debugObj.style.padding='10px';debugObj.style.overflow='auto';debugWinObj.appendChild(debugObj);}
showHideDiv('debugDiv',true);}
function xmlOpener(){var formObj=document.getElementById('xmldata');}
function empty(){ajaxCallOff++;}
function maintainance(){if(maintainanceArr[location.href]!=1){maintainanceArr[location.href]=1;alert('Sorry! Data cannot be saved at this moment. Maintainance program is running in one of the branches.');}
hideStatus();}
function resetMaintainance(){maintainanceArr[location.href]=0;}
function isArray(obj){if(obj.constructor.toString().indexOf('Array')==-1)
return false;else
return true;}
function showHideDiv(id,status){var divObj=document.getElementById(id);if(divObj){if(status){divObj.style.visibility="visible";divObj.style.display="block";}else{divObj.style.visibility="hidden";divObj.style.display="none";}}}
function findPosX(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft
obj=obj.offsetParent;}}else if(obj.x){curleft+=obj.x;}
return curleft;}
function findPosY(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop
obj=obj.offsetParent;}}else if(obj.x){curtop+=obj.x;}
return curtop;}
function hideStatus(divId,err){var loadingObj=document.getElementById(divId);if(loadingObj){loadingObj.style.visibility='hidden';loadingObj.style.cursor='default';loadingObj.childNodes[1].innerHTML=err;}}
function showStatus(divId,err){var loadingObj=document.getElementById(divId);if(loadingObj){loadingObj.style.visibility='visible';loadingObj.style.cursor='wait';loadingObj.childNodes[1].innerHTML=err;}}