var dtCh="-";var minYear=1900;var maxYear=2100;var nameIndex=0;var typeIndex=1;var requiredIndex=2;var msgIndex=3;var jstypeIndex=4;var minIndex=5;var maxIndex=6;var compareToIndex=7;var validate=new Array();var maxHours=24;var requiredTxt='Missing Required Field:'
var invalidTxt='Invalid Value:'
var secondsSinceLoad=0;var alertList=new Array();function addAlert(type,name,subtitle,description,time,redirect){var addIndex=alertList.length;alertList[addIndex]=new Array();alertList[addIndex]['name']=name;alertList[addIndex]['type']=type;alertList[addIndex]['subtitle']=subtitle;alertList[addIndex]['description']=replaceAll(description,'<br>','\n');alertList[addIndex]['time']=time;alertList[addIndex]['done']=0;alertList[addIndex]['redirect']=redirect;}
function checkAlerts(){secondsSinceLoad+=1;var mj=0;var alertmsg='';for(mj=0;mj<alertList.length;mj++){if(alertList[mj]['done']==0){if(alertList[mj]['time']<secondsSinceLoad&&alertList[mj]['time']>-1){alertmsg=alertList[mj]['type']+":"+alertList[mj]['name']+"\n"+alertList[mj]['subtitle']+"\n"+alertList[mj]['description']+"\n\n";alertList[mj]['done']=1;if(alertList[mj]['redirect']==''){alert(alertmsg);}else if(confirm(alertmsg)){window.location=alertList[mj]['redirect'];}}}}
setTimeout("checkAlerts()",1000);}
function toggleDisplay(id){if(this.document.getElementById(id).style.display=='none'){this.document.getElementById(id).style.display='inline'
if(this.document.getElementById(id+"link")!=undefined){this.document.getElementById(id+"link").style.display='none';}}else{this.document.getElementById(id).style.display='none'
if(this.document.getElementById(id+"link")!=undefined){this.document.getElementById(id+"link").style.display='inline';}}}
function checkAll(form,field,value)
{for(i=0;i<form.elements.length;i++){if(form.elements[i].name==field)
form.elements[i].checked=value;}}
function replaceAll(text,src,rep){offset=text.toLowerCase().indexOf(src.toLowerCase());while(offset!=-1){text=text.substring(0,offset)+rep+text.substring(offset+src.length,text.length);offset=text.indexOf(src,offset+rep.length+1);}
return text;}
function addForm(formname){validate[formname]=new Array();}
function addToValidate(formname,name,type,required,msg){if(typeof validate[formname]=='undefined'){addForm(formname);}
validate[formname][validate[formname].length]=new Array(name,type,required,msg);}
function addToValidateRange(formname,name,type,required,msg,min,max){addToValidate(formname,name,type,required,msg);validate[formname][validate[formname].length-1][jstypeIndex]='range'
validate[formname][validate[formname].length-1][minIndex]=min;validate[formname][validate[formname].length-1][maxIndex]=max;}
function addToValidateDateBefore(formname,name,type,required,msg,compareTo){addToValidate(formname,name,type,required,msg);validate[formname][validate[formname].length-1][jstypeIndex]='isbefore'
validate[formname][validate[formname].length-1][compareToIndex]=compareTo;}
function removeFromValidate(formname,name){for(i=0;i<validate[formname].length;i++){if(validate[formname][i][nameIndex]==name){validate[formname].splice(i,1);}}}
function toDecimal(original){temp=Math.round(original*100)/100;if((original*100)%100==0)
return temp+'.00';if((original*10)%10==0)
return temp+'0';return temp}
function isInteger(s){var i;for(i=0;i<s.length;i++){var c=s.charAt(i);if(((c<"0")||(c>"9")))return false;}
return true;}
function stripCharsInBag(s,bag){var i;var returnString="";for(i=0;i<s.length;i++){var c=s.charAt(i);if(bag.indexOf(c)==-1)returnString+=c;}
return returnString;}
function daysInFebruary(year){return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28);}
function DaysArray(n){for(var i=1;i<=n;i++){this[i]=31
if(i==4||i==6||i==9||i==11){this[i]=30}
if(i==2){this[i]=29}}
return this}
var date_reg_positions={'Y':1,'m':2,'d':3};var date_reg_format='([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})'
function isDate(dtStr){if(dtStr.length==0){return true;}
myregexp=new RegExp(date_reg_format)
if(!myregexp.test(dtStr))
return false
return true}
function getDateObject(dtStr){if(dtStr.length==0){return true;}
myregexp=new RegExp(date_reg_format)
var dt=myregexp.exec(dtStr)
var yr=dt[date_reg_positions['Y']];var mh=dt[date_reg_positions['m']];var dy=dt[date_reg_positions['d']];var date1=new Date();date1.setFullYear(yr);date1.setMonth(mh);date1.setDate(dy);return date1;}
function isBefore(value1,value2){var d1=getDateObject(value1);var d2=getDateObject(value2);return d2>=d1;}
function isValidEmail(emailStr){if(emailStr.length==0){return true;}
if(!/^\w+([\.\-\+]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(emailStr))
return false
return true}
function isValidPhone(phoneStr){if(phoneStr.length==0){return true;}
if(!/^[0-9\-\(\)]+$/.test(phoneStr))
return false
return true}
function isFloat(floatStr){if(floatStr.length==0){return true;}
if(!/^[0-9\.]+$/.test(floatStr))
return false
return true}
var time_reg_format="[0-9]{1,2}\:[0-9]{2}";function isTime(timeStr){time_reg_format=time_reg_format.replace('([ap]m)','');time_reg_format=time_reg_format.replace('([AP]M)','');if(timeStr.length==0){return true;}
myregexp=new RegExp(time_reg_format)
if(!myregexp.test(timeStr))
return false
return true}
function inRange(value,min,max){return value>=min&&value<=max;}
function trim(s){if(typeof(s)=='undefined')
return s;while(s.substring(0,1)==" "){s=s.substring(1,s.length);}
while(s.substring(s.length-1,s.length)==' '){s=s.substring(0,s.length-1);}
return s;}
function check_form(formname){return validate_form(formname,'');}
function validate_form(formname,startsWith){if(typeof(formname)=='undefined')
{return false;}
if(typeof(validate[formname])=='undefined')
{return true;}
var form="document."+formname;var isError=false;var errorMsg="";for(var i=0;i<validate[formname].length;i++){if(validate[formname][i][nameIndex].indexOf(startsWith)==0){if(typeof eval(form+"."+validate[formname][i][nameIndex])!='undefined'){var bail=false;if(validate[formname][i][requiredIndex]){if(typeof eval(form+"."+validate[formname][i][nameIndex])=='undefined'||trim(eval(form+"."+validate[formname][i][nameIndex]+".value"))==""){errorMsg+='\n'+requiredTxt+' '+validate[formname][i][msgIndex];isError=true;bail=true;}}
if(!bail){switch(validate[formname][i][typeIndex]){case'email':if(!isValidEmail(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")))){isError=true;errorMsg+="\n "+invalidTxt+" "+validate[formname][i][msgIndex];}
break;case'time':if(!isTime(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")))){isError=true;errorMsg+="\n "+invalidTxt+" "+validate[formname][i][msgIndex];}break;case'date':if(!isDate(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")))){isError=true;errorMsg+="\n "+invalidTxt+" "+validate[formname][i][msgIndex];}break;case'alpha':break;case'alphanumeric':break;case'int':if(!isInteger(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")))){isError=true;errorMsg+="\n "+invalidTxt+" "+validate[formname][i][msgIndex];}break;case'float':if(!isFloat(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")))){isError=true;errorMsg+="\n "+invalidTxt+" "+validate[formname][i][msgIndex];}break;}
if(typeof validate[formname][i][jstypeIndex]!='undefined'&&!isError){switch(validate[formname][i][jstypeIndex]){case'range':if(!inRange(trim(eval(form+"."+validate[formname][i][nameIndex]+".value")),validate[formname][i][minIndex],validate[formname][i][maxIndex])){isError=true;errorMsg+="\n "+validate[formname][i][msgIndex]+" value "+eval(form+"."+validate[formname][i][nameIndex]+".value")+" is not within the valid range ("+validate[formname][i][minIndex]+" - "+validate[formname][i][maxIndex]+") ";}
break;case'isbefore':compareTo=form+"."+validate[formname][i][compareToIndex];if(typeof compareTo!='undefined'){date1=trim(eval(form+"."+validate[formname][i][nameIndex]+".value"));date2=trim(eval(compareTo+'.value'));if(!isBefore(date1,date2)){isError=true;errorMsg+="\n "+validate[formname][i][msgIndex]+"("+date1+") is not before "+date2;}}}}}}}}
if(isError==true){alert(errorMsg);return false;}
return true;}
function confirmLink(theLink,theSqlQuery)
{if(confirmMsg==''||typeof(window.opera)!='undefined'){return true;}
var is_confirmed=confirm(confirmMsg+' :\n'+theSqlQuery);if(is_confirmed){theLink.href+='&is_js_confirmed=1';}
return is_confirmed;}
function confirmQuery(theForm1,sqlQuery1)
{if(confirmMsg==''){return true;}
else if(typeof(sqlQuery1.value.replace)=='undefined'){return true;}
else{if(noDropDbMsg!=''){var drop_re=new RegExp('DROP\\s+(IF EXISTS\\s+)?DATABASE\\s','i');if(drop_re.test(sqlQuery1.value)){alert(noDropDbMsg);theForm1.reset();sqlQuery1.focus();return false;}}
var do_confirm_re_0=new RegExp('^DROP\\s+(IF EXISTS\\s+)?(TABLE|DATABASE)\\s','i');var do_confirm_re_1=new RegExp('^ALTER\\s+TABLE\\s+((`[^`]+`)|([A-Za-z0-9_$]+))\\s+DROP\\s','i');var do_confirm_re_2=new RegExp('^DELETE\\s+FROM\\s','i');if(do_confirm_re_0.test(sqlQuery1.value)||do_confirm_re_1.test(sqlQuery1.value)||do_confirm_re_2.test(sqlQuery1.value)){var message=(sqlQuery1.value.length>100)?sqlQuery1.value.substr(0,100)+'\n    ...':sqlQuery1.value;var is_confirmed=confirm(confirmMsg+' :\n'+message);if(is_confirmed){theForm1.elements['is_js_confirmed'].value=1;return true;}
else{window.focus();sqlQuery1.focus();return false;}}}
return true;}
function checkSqlQuery(theForm)
{var sqlQuery=theForm.elements['sql_query'];var isEmpty=1;if(typeof(sqlQuery.value.replace)=='undefined'){isEmpty=(sqlQuery.value=='')?1:0;if(isEmpty&&typeof(theForm.elements['sql_file'])!='undefined'){isEmpty=(theForm.elements['sql_file'].value=='')?1:0;}
if(isEmpty&&typeof(theForm.elements['sql_localfile'])!='undefined'){isEmpty=(theForm.elements['sql_localfile'].value=='')?1:0;}
if(isEmpty&&typeof(theForm.elements['id_bookmark'])!='undefined'){isEmpty=(theForm.elements['id_bookmark'].value==null||theForm.elements['id_bookmark'].value=='');}}
else{var space_re=new RegExp('\\s+');isEmpty=(sqlQuery.value.replace(space_re,'')=='')?1:0;if(!isEmpty&&!confirmQuery(theForm,sqlQuery)){return false;}
if(isEmpty&&typeof(theForm.elements['sql_file'])!='undefined'){isEmpty=(theForm.elements['sql_file'].value.replace(space_re,'')=='')?1:0;}
if(isEmpty&&typeof(theForm.elements['sql_localfile'])!='undefined'){isEmpty=(theForm.elements['sql_localfile'].value.replace(space_re,'')=='')?1:0;}
if(isEmpty&&typeof(theForm.elements['id_bookmark'])!='undefined'){isEmpty=(theForm.elements['id_bookmark'].value==null||theForm.elements['id_bookmark'].value=='');isEmpty=(theForm.elements['id_bookmark'].selectedIndex==0);}
if(isEmpty){theForm.reset();}}
if(isEmpty){sqlQuery.select();alert(errorMsg0);sqlQuery.focus();return false;}
return true;}
function emptyFormElements(theForm,theFieldName)
{var isEmpty=1;var theField=theForm.elements[theFieldName];var isRegExp=(typeof(theField.value.replace)!='undefined');if(!isRegExp){isEmpty=(theField.value=='')?1:0;}else{var space_re=new RegExp('\\s+');isEmpty=(theField.value.replace(space_re,'')=='')?1:0;}
if(isEmpty){theForm.reset();theField.select();alert(errorMsg0);theField.focus();return false;}
return true;}
function checkFormElementInRange(theForm,theFieldName,min,max)
{var theField=theForm.elements[theFieldName];var val=parseInt(theField.value);if(typeof(min)=='undefined'){min=0;}
if(typeof(max)=='undefined'){max=Number.MAX_VALUE;}
if(isNaN(val)){theField.select();alert(errorMsg1);theField.focus();return false;}
else if(val<min||val>max){theField.select();alert(val+errorMsg2);theField.focus();return false;}
else{theField.value=val;}
return true;}
function checkTransmitDump(theForm,theAction)
{var formElts=theForm.elements;if(theAction=='zip'&&formElts['zip'].checked){if(!formElts['asfile'].checked){theForm.elements['asfile'].checked=true;}
if(typeof(formElts['gzip'])!='undefined'&&formElts['gzip'].checked){theForm.elements['gzip'].checked=false;}
if(typeof(formElts['bzip'])!='undefined'&&formElts['bzip'].checked){theForm.elements['bzip'].checked=false;}}
else if(theAction=='gzip'&&formElts['gzip'].checked){if(!formElts['asfile'].checked){theForm.elements['asfile'].checked=true;}
if(typeof(formElts['zip'])!='undefined'&&formElts['zip'].checked){theForm.elements['zip'].checked=false;}
if(typeof(formElts['bzip'])!='undefined'&&formElts['bzip'].checked){theForm.elements['bzip'].checked=false;}}
else if(theAction=='bzip'&&formElts['bzip'].checked){if(!formElts['asfile'].checked){theForm.elements['asfile'].checked=true;}
if(typeof(formElts['zip'])!='undefined'&&formElts['zip'].checked){theForm.elements['zip'].checked=false;}
if(typeof(formElts['gzip'])!='undefined'&&formElts['gzip'].checked){theForm.elements['gzip'].checked=false;}}
else if(theAction=='transmit'&&!formElts['asfile'].checked){if(typeof(formElts['zip'])!='undefined'&&formElts['zip'].checked){theForm.elements['zip'].checked=false;}
if((typeof(formElts['gzip'])!='undefined'&&formElts['gzip'].checked)){theForm.elements['gzip'].checked=false;}
if((typeof(formElts['bzip'])!='undefined'&&formElts['bzip'].checked)){theForm.elements['bzip'].checked=false;}}
return true;}
var marked_row=new Array;function setPointer(theRow,theRowNum,theAction,theDefaultColor,thePointerColor,theMarkColor)
{var theCells=null;if((thePointerColor==''&&theMarkColor=='')||typeof(theRow.style)=='undefined'){return false;}
if(typeof(document.getElementsByTagName)!='undefined'){theCells=theRow.getElementsByTagName('td');}
else if(typeof(theRow.cells)!='undefined'){theCells=theRow.cells;}
else{return false;}
var rowCellsCnt=theCells.length;var domDetect=null;var currentColor=null;var newColor=null;if(typeof(window.opera)=='undefined'&&typeof(theCells[0].getAttribute)!='undefined'){currentColor=theCells[0].getAttribute('bgcolor');domDetect=true;}
else{currentColor=theCells[0].style.backgroundColor;domDetect=false;}
if(currentColor==''||currentColor.toLowerCase()==theDefaultColor.toLowerCase()){if(theAction=='over'&&thePointerColor!=''){newColor=thePointerColor;}
else if(theAction=='click'&&theMarkColor!=''){newColor=theMarkColor;marked_row[theRowNum]=true;}}
else if(currentColor.toLowerCase()==thePointerColor.toLowerCase()&&(typeof(marked_row[theRowNum])=='undefined'||!marked_row[theRowNum])){if(theAction=='out'){newColor=theDefaultColor;}
else if(theAction=='click'&&theMarkColor!=''){newColor=theMarkColor;marked_row[theRowNum]=true;}}
else if(currentColor.toLowerCase()==theMarkColor.toLowerCase()){if(theAction=='click'){newColor=(thePointerColor!='')?thePointerColor:theDefaultColor;marked_row[theRowNum]=(typeof(marked_row[theRowNum])=='undefined'||!marked_row[theRowNum])?true:null;}}
if(newColor){var c=null;if(domDetect){for(c=0;c<rowCellsCnt;c++){theCells[c].setAttribute('bgcolor',newColor,0);}}
else{for(c=0;c<rowCellsCnt;c++){theCells[c].style.backgroundColor=newColor;}}}
return true;}
function setVerticalPointer(theRow,theRowNum,theAction,theDefaultColor1,theDefaultColor2,thePointerColor,theMarkColor){var theCells=null;if((thePointerColor==''&&theMarkColor=='')||typeof(theRow.style)=='undefined'){return false;}
if(typeof(document.getElementsByTagName)!='undefined'){theCells=theRow.getElementsByTagName('td');}
else if(typeof(theRow.cells)!='undefined'){theCells=theRow.cells;}
else{return false;}
var rowCellsCnt=theCells.length;var domDetect=null;var currentColor=null;var newColor=null;if(typeof(window.opera)=='undefined'&&typeof(theCells[0].getAttribute)!='undefined'){currentColor=theCells[0].getAttribute('bgcolor');domDetect=true;}
else{domDetect=false;}
var c=null;for(c=0;c<rowCellsCnt;c++){if(domDetect){currentColor=theCells[c].getAttribute('bgcolor');}else{currentColor=theCells[c].style.backgroundColor;}
if(currentColor==''||currentColor.toLowerCase()==theDefaultColor1.toLowerCase()||currentColor.toLowerCase()==theDefaultColor2.toLowerCase()){if(theAction=='over'&&thePointerColor!=''){newColor=thePointerColor;}else if(theAction=='click'&&theMarkColor!=''){newColor=theMarkColor;marked_row[theRowNum]=true;}}
else if(currentColor.toLowerCase()==thePointerColor.toLowerCase()&&(typeof(marked_row[theRowNum])=='undefined'||!marked_row[theRowNum])){if(theAction=='out'){if(c%2){newColor=theDefaultColor1;}else{newColor=theDefaultColor2;}}
else if(theAction=='click'&&theMarkColor!=''){newColor=theMarkColor;marked_row[theRowNum]=true;}}
else if(currentColor.toLowerCase()==theMarkColor.toLowerCase()){if(theAction=='click'){newColor=(thePointerColor!='')?thePointerColor:((c%2)?theDefaultColor1:theDefaultColor2);marked_row[theRowNum]=(typeof(marked_row[theRowNum])=='undefined'||!marked_row[theRowNum])?true:null;}}
if(newColor){if(domDetect){theCells[c].setAttribute('bgcolor',newColor,0);}
else{theCells[c].style.backgroundColor=newColor;}}}
return true;}
function setCheckboxes(the_form,do_check)
{var elts=(typeof(document.forms[the_form].elements['selected_db[]'])!='undefined')?document.forms[the_form].elements['selected_db[]']:(typeof(document.forms[the_form].elements['selected_tbl[]'])!='undefined')?document.forms[the_form].elements['selected_tbl[]']:document.forms[the_form].elements['selected_fld[]'];var elts_cnt=(typeof(elts.length)!='undefined')?elts.length:0;if(elts_cnt){for(var i=0;i<elts_cnt;i++){elts[i].checked=do_check;}}else{elts.checked=do_check;}
return true;}
function setSelectOptions(the_form,the_select,do_check)
{var selectObject=document.forms[the_form].elements[the_select];var selectCount=selectObject.length;for(var i=0;i<selectCount;i++){selectObject.options[i].selected=do_check;}
return true;}
function onKeyDownArrowsHandler(e){e=e||window.event;var o=(e.srcElement||e.target);if(!o)return;if(o.tagName!="TEXTAREA"&&o.tagName!="INPUT"&&o.tagName!="SELECT")return;if(!e.ctrlKey)return;if(!o.id)return;var pos=o.id.split("_");if(pos[0]!="field"||typeof pos[2]=="undefined")return;var x=pos[2],y=pos[1];for(i=0;i<10;i++)
{switch(e.keyCode){case 38:y--;break;case 40:y++;break;case 37:x--;break;case 39:x++;break;default:return;}
var id="field_"+y+"_"+x;var nO=document.getElementById(id);if(nO)break;}
if(!nO)return;nO.focus();if(nO.tagName!='SELECT'){nO.select();}
e.returnValue=false;}
function insertValueQuery(){var myQuery=document.sqlform.sql_query;var myListBox=document.sqlform.dummy;if(myListBox.options.length>0){var chaineAj="";var NbSelect=0;for(var i=0;i<myListBox.options.length;i++){if(myListBox.options[i].selected){NbSelect++;if(NbSelect>1)
chaineAj+=", ";chaineAj+=myListBox.options[i].value;}}
if(document.selection){myQuery.focus();sel=document.selection.createRange();sel.text=chaineAj;document.sqlform.insert.focus();}
else if(document.sqlform.sql_query.selectionStart||document.sqlform.sql_query.selectionStart=="0"){var startPos=document.sqlform.sql_query.selectionStart;var endPos=document.sqlform.sql_query.selectionEnd;var chaineSql=document.sqlform.sql_query.value;myQuery.value=chaineSql.substring(0,startPos)+chaineAj+chaineSql.substring(endPos,chaineSql.length);}else{myQuery.value+=chaineAj;}}}
function goToUrl(selObj,goToLocation){eval("document.location.href = '"+goToLocation+"pos="+selObj.options[selObj.selectedIndex].value+"'");}
var global_xmlhttp=false;var json_objects=new Object();function loadXMLHTTP()
{if(global_xmlhttp!=false)
{return;}
try
{global_xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e)
{try
{global_xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
catch(E)
{global_xmlhttp=false;}}
if(!global_xmlhttp&&typeof XMLHttpRequest!='undefined')
{global_xmlhttp=new XMLHttpRequest();}}
loadXMLHTTP();function call_json_method(module,action,vars,variable_name,callback)
{global_xmlhttp.open("GET","json.php?module="+module+"&action="+action+"&"+vars,true);global_xmlhttp.onreadystatechange=function(){if(global_xmlhttp.readyState==4)
{if(global_xmlhttp.status==200)
{try
{eval("json_objects['"+variable_name+"'] ="+global_xmlhttp.responseText);}
catch(exception)
{alert("ERROR:"+exception);}
var args={responseText:global_xmlhttp.responseText,responseXML:global_xmlhttp.responseXML};callback.call(document,args);}
else
{alert("There was a problem retrieving the XML data:\n"+
global_xmlhttp.statusText);}}}
global_xmlhttp.send(null);}
function insert_at_cursor(field,value)
{if(document.selection)
{field.focus();sel=document.selection.createRange();sel.text=value;}
else if(field.selectionStart||field.selectionStart=='0')
{var start_pos=field.selectionStart;var end_pos=field.selectionEnd;field.value=field.value.substring(0,start_pos)+value+field.value.substring(end_pos,field.value.length);}
else
{field.value+=value;}}