var winHelpHNDL = null; var winUtilityHNDL = null; var winDebug = null; var new_fieldname = ""; var _mousePosX; var _mousePosY; //Used for color changes in forms var highlightcolor="lightYellow"; var ns6 = document.getElementById&&!document.all; var previous=''; var eventobj; var intended=/INPUT|TEXTAREA/; var isIE = false; var isIE7 = false; var isOther = false; var isNS4 = false; var isNS6 = false; var isSafari = false; var isOpera = false; var submitted = false; var onLoadFunctions = new Array(); document.onmousemove = getMouseXY; if(document.getElementById) { if(!document.all) { isNS6=true; } if(document.all) { isIE=true; } } else { if(document.layers) { isNS4=true; } else { isOther=true; } } isSafari = (document.childNodes && !document.all && !navigator.taintEnabled && !navigator.accentColorName)? true : false; isOpera = navigator.userAgent.toLowerCase().indexOf("opera") != -1; isIE7 = isIE && document.documentElement && typeof document.documentElement.style.maxHeight!="undefined"; /** * Sets mouseX and mouseY coords */ function getMouseXY(e) { // When page hasn't finished loading this will produce an error, // so I wrap in a harmless try-catch try { if (document.all) { _mousePosX = event.clientX + document.body.scrollLeft; _mousePosY = event.clientY + document.body.scrollTop; } else { //window.status = 'x='+e.pageX+' y='+e.pageY; _mousePosX = e.pageX; _mousePosY = e.pageY; } } catch (e) { } } // ************************************* // AJAX FUNCTIONS // ************************************* //setStatus after AJAX events or any other take place function on404(t){ alert('Error 404: location "' + t.statusText + '" was not found.'); } function onFailure(t){ alert('Error ' + t.status + ' -- ' + t.statusText); } function on12152(t){ // ignore this error, only produced by IE very occasionaly when fetching the snapshot counters in the dashboard } function on12002(t){ // idem } function setStatus(s, time) { s = '
\n');
}
winDebug.document.write(str + '\n');
}
/* Used for snapshot menu */
function addClassName(el, sClassName)
{
var s = el.className;
var p = s.split(" ");
var l = p.length;
for (var i = 0; i < l; i++) {
if (p[i] == sClassName)
return;
}
p[p.length] = sClassName;
el.className = p.join(" ");
}
function removeClassName(el, sClassName)
{
var s = el.className;
var p = s.split(" ");
var np = [];
var l = p.length;
var j = 0;
for (var i = 0; i < l; i++) {
if (p[i] != sClassName)
np[j++] = p[i];
}
el.className = np.join(" ");
}
/* Used for dynamic menu */
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i '9') {
return false;
}
return true;
}
}
function getElementsByName_iefix(tag, name) {
var elem = document.getElementsByTagName(tag);
var arr = new Array();
for(i = 0,iarr = 0; i < elem.length; i++) {
att = elem[i].getAttribute("name");
if(att == name) {
arr[iarr] = elem[i];
iarr++;
}
}
return arr;
}
// Functions to escape strings.
// Can't use encodeURIComponent if document is not UTF-8.
// escape() works fine with ISO-8859-1 but will most likely break under other charsets,
// but this is the best we can do...
function _escapeString(str)
{
var isUTF = (isIE && document.charset == 'utf-8') || (!isIE && document.characterSet == 'UTF-8');
if (isUTF) {
return encodeURIComponent(str);
}
return escape(str);
}
function _sprintf(s)
{
var re = /%/;
var i = 0;
while (re.test(s))
{
s = s.replace(re, _sprintf.arguments[++i]);
}
return s;
}
function passwordRequest(inputMail)
{
var newElement = $(inputMail);
var newEmail = newElement.value;
var opt = {
onSuccess : messageEmailSent,
onLoading : function() {resetStatus(lang('Loading'));}
}
new Ajax.Request('index.php?fuse=admin&action=RequestPassword&ajaxRequest=1&emailToSend='+newEmail, opt);
}
function messageEmailSent(t)
{
unsetStatus(false);
var response = t.responseText;
$('message').innerHTML = ''+response+'';
}
function changeCheckBox(parent, checkBox, grandParent)
{
var parentChecked = $(parent);
var currentDiv = $(checkBox);
var siblingDivs = 0;
if(parentChecked.checked){
while(currentDiv = currentDiv.nextSibling) {
if(currentDiv.nodeName == "DIV"){
var newArrayCollection = currentDiv.getElementsByTagName("input");
newArrayCollection[0].disabled = false;
}
siblingDivs++;
}
} else if( !parentChecked.checked ) {
newElement = $(grandParent);
var newArrayCollectionImg = newElement.getElementsByTagName("img");
var newArrayCollection = newElement.getElementsByTagName("input");
if(newArrayCollection.length > 1){
if(!deletePermissions()) {
parentChecked.checked = true;
return false;
}else{
newArrayCollectionImg[0].style.display = "";
}
}
for(var i=1; i < newArrayCollection.length; i++) {
newArrayCollection[i].disabled = true;
newArrayCollection[i].checked = false;
}
}
}
function deletePermissions()
{
if (confirm(lang('By disabling this permission you will disable all permissions that depend on it. \n \n Are you sure you want to do this?'))) {
return true;
}
return false;
}
function viewSubPermissions(element)
{
var currentDiv = $(element);
while(currentDiv = currentDiv.nextSibling) {
if(currentDiv.nodeName == "DIV") {
if(!currentDiv.style.display) {
currentDiv.style.display="none";
}else{
currentDiv.style.display="";
}
}
}
}
function check(form,x)
{
script_name = "Form Validator ver 2.0";
action = "Checks Required, Integer and Date";
copyright = "(c) 1998 - Art Lubin / Artswork";
email = "perflunk@aol.com";
var set_up_var = doall(script_name, copyright, email);
var message = "";
var more_message = "";
if (set_up_var == 5872){
x = x - 1;
for (var i = 0; i <= x; i++) {
var messenger = form.elements[i].name;
messenger = messenger.substring(0, 2);
var fieldname = form.elements[i].name;
fieldname = fieldname.substring(2);
if((form.elements[i].name == "ccnumber" || form.elements[i].name == "ccmonth" || form.elements[i].name == "ccyear") && document.getElementById("creditcardinfo").style.display == "none")
{
form.elements[i].value = "";
}
if (messenger == "r_"){
if (form.elements[i].value!=""){
more_message = r_check(form,x,fieldname,i);
}
}else if (messenger == "c_"){
if (form.elements[i].value!=""){
//more_message = c_check(form,x,fieldname,i,false);
more_message = c_check(form,x,fieldname,i,true); //blanks are allowed with this line
var cctypes = form.elements['validcc'].value
if (more_message==""){ more_message = CheckWithAllowedCardTypes(cctypes,form,x,fieldname,i); }
}
}else if (messenger == "C_"){
//same as case above but blanks are allowed
if (form.elements[i].value!=""){
more_message = c_check(form,x,fieldname,i,true);
var cctypes = form.elements['validcc'].value
if (more_message==""){ more_message = CheckWithAllowedCardTypes(cctypes,form,x,fieldname,i); }
}
}else if (messenger == "D_"){
if (form.elements[i].value!=""){
more_message = D_check(form,x,fieldname,i);
}
}else if (messenger == "i_"){
more_message = i_check(form,x,fieldname,i);
}else if (messenger == "d_"){
more_message = d_check(form,x,fieldname,i);
}else if (messenger == "e_"){
more_message = e_check(form,x,fieldname,i);
}else if (messenger == "n_"){
more_message = n_check(form, x, fieldname, i);
}
if (more_message != ""){
if (more_message){
if (message == ""){
message = more_message;
more_message="";
}else{
message = message + "\n" + more_message;
more_message="";
}
}
}
}
if (message != ""){
alert(lang("The following form field(s) were incomplete or incorrect")+":\n\n" + message + "\n\n"+lang("Please complete or correct the form and submit again."));
}else{
submitonce(form);
// call form onsubmit event, if it exists
try {
form.onsubmit();
} catch(e) {
}
if (!submitted) {
form.submit();
submitted = true;
}
}
}else{
alert ("The copyright information has been changed. \n In order to use this javascript please keep the copyright information intact. \n\n Script Name: Form Validator ver 2.0 \n Copyright: (c) 1998 - Art Lubin / Artswork \n Email: perflunk@aol.com");
}
}
// When completed, this function will replace the check() function, that doesn't work with fieldset tags
function getFormErrors(form)
{
var strAlertMessageArr = new Array();;
var elements = form.getElementsByTagName("input");
for (var i = 0; i < elements.length; i++) {
if (elements[i].name.substr(0, 2) == "r_") {
var requiredElementName = elements[i].name.substr(2);
for (var j = 0; j < elements.length; j++) {
if (elements[j].name == requiredElementName && elements[j].value == "") {
strAlertMessageArr.push(lang('The field % can\'t be empty.', elements[i].value));
break;
}
}
}
}
return strAlertMessageArr;
}
function isNum(str)
{
// 0.234, .234, 234, 234.234
regexp = /(^\d+\.?\d*)|(^\d*\.?\d+)/;
if (regexp.test(str)) return true;
else return false;
}
function n_check(form, x, fieldname, i)
{
var msg_addition = "";
error=0;
for (var y = 0; y <= x; y++) {
if (form.elements[y].name == fieldname) break;
}
var msg_addition = "";
numberField = form.elements[y].value;
if(!isNum(numberField)) { error = 1;} else {
if (numberField.indexOf ('.3') > 1) error = 1;
}
if (error == 1) msg_addition = form.elements[i].value;
return(msg_addition);
}
function c_check(form,x,fieldname,i,blankallowed)
{
/*************************************************************************\
luhn check
\*************************************************************************/
var msg_addition = "";
error=0;
for (var y = 0; y <= x; y++){ if (form.elements[y].name == fieldname) break; }
var msg_addition = "";
CardNumber = form.elements[y].value;
if (CardNumber != ""){
if (! isNum(CardNumber)) { error=1; }
var no_digit = CardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;
if (error==0){
for (var count = 0; count < no_digit; count++) {
var digit = parseInt(CardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9) digit -= 9;
}
sum += digit;
}
if (sum % 10 == 0) error=0;
else error=1;
}
if (error == 1) msg_addition = form.elements[i].value;
}else if (!blankallowed) msg_addition = form.elements[i].value;
return(msg_addition);
}
function D_check(form,x,fieldname,i)
{
for (var y = 0; y <= x; y++)
{
if (form.elements[y].name == fieldname) break;
}
var msg_addition = "";
regexp = /^\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (regexp.test(form.elements[y].value)) error = 0;
else{
error=1;
}
if (error == 1) msg_addition = form.elements[i].value;
return(msg_addition);
}
function r_check(form,x,fieldname,i)
{
var msg_addition = "";
new_fieldname = fieldname;
for (var y = 0; y <= x; y++)
{
if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == true)
{
msg_addition = "";
break;
}
else if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == false)
{
msg_addition = form.elements[i].value;
}
else if (form.elements[y].type == "select-one")
{
var l = form.elements[y].selectedIndex;
if (form.elements[y].name == fieldname && form.elements[y].options[l].value != "")
{
msg_addition = "";
break;
}
else if (form.elements[y].name == fieldname && form.elements[y].options[l].value == "")
{
msg_addition = form.elements[i].value;
}
}
else if (form.elements[y].name == fieldname && form.elements[y].value == "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
{
if(form.elements[y].name == 'UserName' || form.elements[y].name == 'Password'){
msg_addition = "";
}else{
msg_addition = form.elements[i].value;
break;
}
}
else if (form.elements[y].name == fieldname && form.elements[y].value != "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")
{
msg_addition = "";
}
}
return(msg_addition);
}
function i_check(form,x,fieldname,i)
{
for (var y = 0; y <= x; y++)
{
if (form.elements[y].name == fieldname) break;
}
var msg_addition = "";
var decimal = "";
inputStr = form.elements[y].value.toString();
if (inputStr == "")
{
}
else
{
for (var c = 0; c < inputStr.length; c++)
{
var oneChar = inputStr.charAt(c);
if (c == 0 && oneChar == "-" || oneChar == "." && decimal == "")
{
if (oneChar == ".");
{
decimal = "yes";
}
continue;
}
if (oneChar < "0" || oneChar > "9")
{
msg_addition = form.elements[i].value;
}
}
}
return(msg_addition);
}
function e_check(form,x,fieldname,i)
{
for (var y = 0; y <= x; y++){ if (form.elements[y].name == fieldname) break; }
var msg_addition = "";
regexp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;
if (!regexp.test(form.elements[y].value)){
msg_addition = form.elements[i].value;
}
return(msg_addition);
}
function d_check(form,x,fieldname,i)
{
for (var y = 0; y <= x; y++)
{
if (form.elements[y].name == fieldname) break;
}
var msg_addition = "";
var sDate = form.elements[y].value;
var int_or_not = isInteger(form.elements[y].value);
if (int_or_not == "true")
{
if ((!(form.elements[y].value.length >= 6)) || (!(form.elements[y].value.length <= 10)))
{
msg_addition = form.elements[i].value;
}
else
{
var SlashlPos = form.elements[y].value.indexOf("/",0);
if (SlashlPos > 0 && SlashlPos <= 2)
{
if (SlashlPos == 1)
{
if (form.elements[y].value.charAt(0) < 1 || form.elements[y].value.charAt(0) > 9)
{
msg_addition = form.elements[i].value;
}
else
{
if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/")))
{
msg_addition = form.elements[i].value;
}
else if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && ((form.elements[y].value.charAt(2) >= 3 && form.elements[y].value.charAt(3) > 1) || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/"))))
{
msg_addition = form.elements[i].value + "hi";
}
else if ((form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) && (((form.elements[y].value.charAt(2) > 3 && form.elements[y].value.charAt(3) != "/") || (((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/")) && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
{
msg_addition = form.elements[i].value;
}
else
{
if ((form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/") || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/")))))
{
msg_addition = form.elements[i].value;
}
else if (form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) > 2 && form.elements[y].value.charAt(3) != "/") || (((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
{
msg_addition = form.elements[i].value;
}
else
{
if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/")))
{
msg_addition = form.elements[i].value;
}
else if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) >= 3 && form.elements[y].value.charAt(3) > 0) || (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/"))))
{
msg_addition = form.elements[i].value;
}
else if ((form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || form.elements[y].value.charAt(0) == 9) && (((form.elements[y].value.charAt(2) > 3 && form.elements[y].value.charAt(3) != "/") || ((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/"))
{
msg_addition = form.elements[i].value;
}
}
}
}
}
else
{
if (form.elements[y].value.charAt(0) > 1 || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) > 2) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 0))
{
msg_addition = form.elements[i].value;
}
else
{
if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/"))))
{
msg_addition = form.elements[i].value;
}
else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 1) || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0) || form.elements[y].value.length < 7))
{
msg_addition = form.elements[i].value;
}
else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && ((form.elements[y].value.charAt(3) > 3 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
{
msg_addition = form.elements[i].value;
}
else
{
if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0)) || form.elements[y].value.length < 7) || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/")))
{
msg_addition = form.elements[i].value;
}
else if ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && ((form.elements[y].value.charAt(3) > 2 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
{
msg_addition = form.elements[i].value;
}
else
{
if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/"))))
{
msg_addition = form.elements[i].value;
}
else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 0) || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0) || form.elements[y].value.length < 7))
{
msg_addition = form.elements[i].value;
}
else if (((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) > 3 && form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))))
{
msg_addition = form.elements[i].value;
}
}
}
}
}
}
else
{
msg_addition = form.elements[i].value;
}
}
}
else
{
msg_addition = form.elements[i].value;
}
return(msg_addition);
}
function isInteger(sDate)
{
var new_msg = "true";
inputStr = sDate.toString();
for (var i = 0; i < inputStr.length; i++)
{
var oneChar = inputStr.charAt(i);
if ((oneChar < "0" || oneChar > "9") && oneChar != "/")
{
new_msg = "false";
}
}
return (new_msg);
}
function doall(script_name, copyright, email)
{
var code = 0;
var test = script_name + copyright + email;
for (var a = 0; a < test.length; a++)
{
var each_char = test.charAt(a);
var x = asc(each_char);
code += x;
}
return (code);
}
function asc(each_char)
{
var n = 0;
var char_str = charSetStr();
for (i = 0; i < char_str.length; i++)
{
if (each_char == char_str.substring(i, i+1))
{
break;
}
}
return i + 32;
}
function charSetStr()
{
var str;
str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
return str;
}
function CheckWithAllowedCardTypes(cctypes,form,x,fieldname,i)
{
var msg_addition = "";
error=0;
for (var y = 0; y <= x; y++){ if (form.elements[y].name == fieldname) break; }
var msg_addition = "";
CardNumber = form.elements[y].value;
visa = isVisa(CardNumber);
mc = isMasterCard(CardNumber);
amex = isAmericanExpress(CardNumber);
disc = isDiscover(CardNumber);
//c_1000_ = visa
//c_0100_ = mastercard
//c_0010_ = americanexpress
//c_0001_ = discover
if (visa){
if (cctypes.substr(0,1)=="0") return lang("Visa is not accepted at this time");
}else if (mc){
if (cctypes.substr(1,1)=="0") return lang("MasterCard is not accepted at this time");
}else if (amex){
if (cctypes.substr(2,1)=="0") return lang("American Express is not accepted at this time");
}else if (disc){
if (cctypes.substr(3,1)=="0") return lang("Discover is not accepted at this time");
}
}
/* ================================================================
FUNCTION: isVisa()
INPUT: cc - a string representing a credit card number
RETURNS: true, if the credit card number is a valid VISA number.
false, otherwise
Sample number: 4111 1111 1111 1111 (16 digits)
================================================================ */
function isVisa(cc)
{
if (((cc.length == 16) || (cc.length == 13)) &&
(cc.substring(0,1) == 4)) return true;
return false;
} // END FUNCTION isVisa()
/* ================================================================
FUNCTION: isMasterCard()
INPUT: cc - a string representing a credit card number
RETURNS: true, if the credit card number is a valid MasterCard
number.
false, otherwise
Sample number: 5500 0000 0000 0004 (16 digits)
================================================================ */
function isMasterCard(cc)
{
firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if ((cc.length == 16) && (firstdig == 5) &&
((seconddig >= 1) && (seconddig <= 5))) return true;
return false;
} // END FUNCTION isMasterCard()
/* ================================================================
FUNCTION: isAmericanExpress()
INPUT: cc - a string representing a credit card number
RETURNS: true, if the credit card number is a valid American
Express number.
false, otherwise
Sample number: 340000000000009 (15 digits)
================================================================ */
function isAmericanExpress(cc)
{
firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if ((cc.length == 15) && (firstdig == 3) &&
((seconddig == 4) || (seconddig == 7))) return true;
if ((cc.length == 16) && (firstdig == 3) &&
((seconddig == 4) || (seconddig == 7))) return true;
return false;
} // END FUNCTION isAmericanExpress()
/* ================================================================
FUNCTION: isDiscover()
INPUT: cc - a string representing a credit card number
RETURNS: true, if the credit card number is a valid Discover
card number.
false, otherwise
Sample number: 6011000000000004 (16 digits)
================================================================ */
function isDiscover(cc)
{
first4digs = cc.substring(0,4);
if ((cc.length == 16) && (first4digs == "6011")) return true;
return false;
} // END FUNCTION isDiscover()
function move(moveaction,movefrom,moveto)
{
var moveto = $(moveto);
if(moveaction == 'remove') {
for(x = 0;x<($(movefrom).length);x++) {
if($(movefrom).options[x].selected) {
with(moveto) {
options[options.length] = new Option($(movefrom).options[x].text,$(movefrom).options[x].value);
}
$(movefrom).options[x] = null;
x = -1;
}
}
}
if(moveaction == 'add') {
for(x = 0;x<(moveto.length);x++) {
if(moveto.options[x].selected) {
with($(movefrom)) {
options[options.length] = new Option(moveto.options[x].text,moveto.options[x].value);
}
moveto.options[x] = null;
x = -1;
}
}
}
return true;
}
function selAll(target)
{
var target = $(target);
var targetOptions = target.options;
var targetLength = targetOptions.length;
for (var i = 0; i < targetLength; i++) {
targetOptions[i].selected = true;
}
}
// *************************************
// RICH TEXT EDITOR FUNCTIONS
// *************************************
function showRichTextEditor(objName, width, height, buttonArr, textareaId, mode)
{
if (isSafari) {
return;
}
if (typeof mode == "undefined") {
mode = "HTML";
}
eval(objName + " = new InnovaEditor('" + objName + "')");
var tempEditorObj = eval(objName);
tempEditorObj.width = width;
tempEditorObj.height = height;
/***************************************************
RECONFIGURE TOOLBAR BUTTONS
***************************************************/
tempEditorObj.features = buttonArr; // => Custom Button Placement
/***************************************************
OTHER SETTINGS
***************************************************/
tempEditorObj.mode = mode; //Editing mode. Possible values: "HTMLBody" (default), "XHTMLBody", "HTML", "XHTML"
tempEditorObj.REPLACE(textareaId);
}
function selectPlainTextTab(hrefObj, areaId)
{
var ulChildren = hrefObj.parentNode.parentNode.getElementsByTagName("li");
ulChildren[0].className = '';
ulChildren[1].className = 'selected';
$('richTextWrapper_' + areaId).style.display = 'none';
$(areaId + '[1]').style.display = 'block';
}
function selectHTMLTab(hrefObj, areaId)
{
var ulChildren = hrefObj.parentNode.parentNode.getElementsByTagName("li");
ulChildren[0].className = 'selected';
ulChildren[1].className = '';
$(areaId + '[1]').style.display = 'none';
$('richTextWrapper_' + areaId).style.display = 'block';
}
// *************************************
// JAVASCRIPT POPUPS FUNCTIONS
// Based on Chris Campbell's lightbox script
// found at http://particletree.com
// *************************************
var lightbox;
function jsPopup(content, isURL)
{
bod = document.getElementsByTagName('body')[0];
overlay = document.createElement('div');
overlay.id = 'overlay';
lb = document.createElement('div');
lb.id = 'lightbox';
lb.className = 'loading';
lb.innerHTML = '' +
'Loading
' +
'';
bod.appendChild(overlay);
bod.appendChild(lb);
lightbox = Class.create();
lightbox.prototype = {
yPos : 0,
xPos : 0,
initialize: function(content, isURL) {
this.content = content;
if (typeof isURL == 'undefined') {
isURL = true;
}
this.isURL = isURL;
this.activate();
},
// Turn everything on - mainly the IE fixes
activate: function(){
if (isIE){
this.getScroll();
this.prepareIE('100%', 'hidden');
this.setScroll(0,0);
if (!isIE7) {
this.hideSelects('hidden');
}
}
this.displayLightbox("block");
},
// Ie requires height to 100% and overflow hidden or else you can scroll down past the lightbox
prepareIE: function(height, overflow){
bod = document.getElementsByTagName('body')[0];
bod.style.height = height;
bod.style.overflow = overflow;
htm = document.getElementsByTagName('html')[0];
htm.style.height = height;
htm.style.overflow = overflow;
},
// In IE, select elements hover on top of the lightbox
hideSelects: function(visibility){
selects = document.getElementsByTagName('select');
for(i = 0; i < selects.length; i++) {
selects[i].style.visibility = visibility;
}
},
// Taken from lightbox implementation found at http://www.huddletogether.com/projects/lightbox/
getScroll: function(){
if (self.pageYOffset) {
this.yPos = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop){
this.yPos = document.documentElement.scrollTop;
} else if (document.body) {
this.yPos = document.body.scrollTop;
}
},
setScroll: function(x, y){
window.scrollTo(x, y);
},
displayLightbox: function(display){
$('overlay').style.display = display;
$('lightbox').style.display = display;
if(display != 'none') this.loadInfo();
},
loadInfo: function() {
if (this.isURL) {
var myAjax = new Ajax.Request( this.content,
{
method: 'get', parameters: "", onComplete: this.processInfo.bindAsEventListener(this)
}
);
} else {
this.showPopup(this.content);
}
},
// Display Ajax response
processInfo: function(response){
this.showPopup(response.responseText);
},
showPopup: function(strContent){
info = "" + strContent + "";
new Insertion.Before($('lbLoadMessage'), info)
$('lightbox').className = "done";
this.actions();
},
// Search through new links within the lightbox, and attach click event
actions: function(){
lbActions = document.getElementsByClassName('lbAction');
for(i = 0; i < lbActions.length; i++) {
Event.observe(lbActions[i], 'click', this[lbActions[i].rel].bindAsEventListener(this), false);
lbActions[i].onclick = function(){return false;};
}
},
save: function(e){
link = Event.element(e).parentNode;
Element.remove($('lbContent'));
var myAjax = new Ajax.Request( link.href,
{
method : 'post',
parameters : "",
onComplete : this.processInfo.bindAsEventListener(this)
}
);
},
deactivate: function(){
Element.remove($('lbContent'));
if (isIE){
this.setScroll(0,this.yPos);
this.prepareIE("auto", "auto");
if (!isIE7) {
this.hideSelects("visible");
}
}
this.displayLightbox("none");
}
}
valid = new lightbox(content, isURL);
}
// *************************************
// CUSTOMER NOTES FUNCTIONS
// *************************************
function submitNote(form)
{
if (form.noteContent.value == '') {
alert(lang('Note is empty'));
return;
}
var ticketTypes = "";
for (i = 0; i < form.ticketTypes.options.length; i++) {
if (form.ticketTypes.options[i].selected) {
ticketTypes += "&ticketTypes[]=" + form.ticketTypes.options[i].value;
}
}
var content = encodeURIComponent(form.noteContent.value);
new Ajax.Request( 'index.php?fuse=clients&action=SaveClientNote',
{
method : 'post',
parameters : 'customerGroup=' + form.customerGroup.value + '¬eContent=' + content + '&visibleCustomer=' + (form.visibleCustomer.checked? '1' : '0') + '&associateTicketTypes=' + (form.associateTicketTypes.checked? '1' : '0') + ticketTypes,
onLoading : function(){resetStatus(lang('Saving'))},
onComplete : completedSubmitNote
}
);
}
function completedSubmitNote(responseObj)
{
unsetStatus(false);
var responseArr = responseObj.responseText.split('|');
if (typeof responseArr[1] == 'undefined' || responseArr[0] != 'OK') {
alert(responseObj.responseText.stripTags());
return;
}
// dunno why I have to use prototype here or else it won't work...
lightbox.prototype.deactivate();
if ($('clientNotes')) {
loadClientNotes(responseArr[1]);
}
}
function loadClientNotes(customerGroup, includeArchived)
{
if (!customerGroup) {
customerGroup = 0;
}
new Ajax.Updater( 'clientNotes',
'index.php?fuse=clients&view=GetClientNotes&customerGroup='+customerGroup+'&includeArchived=' + (includeArchived? 1 : 0),
{
onLoading : function(request) {resetStatus(lang('Loading Notes'))},
onComplete : function(request) {unsetStatus(false)}
}
);
}
function deleteNote(noteId,calledfromfuse,selectedId)
{
if (!confirm(lang('Are you sure you wish to delete this note?\nBe aware that if the note is linked to a ticket type, all tickets of that type won\'t show this note anymore.'))) {
return;
}
if(selectedId==null) selectedId = 0;
new Ajax.Request( 'index.php?fuse=clients&action=DeleteClientNote',
{
method : 'post',
parameters : 'noteId=' + noteId + '&calledfromfuse=' + calledfromfuse + '&selectedId=' + selectedId,
onLoading : function(request) {resetStatus(lang('Deleting Note'))},
onComplete : completedDeleteNote
}
);
}
function completedDeleteNote(responseObj)
{
unsetStatus(false)
var responseArr = responseObj.responseText.split('|');
if (typeof responseArr[1] == 'undefined' || responseArr[0] != 'OK') {
alert(responseObj.responseText);
}
//need to check where I deleted from
if(responseArr[2] == "client"){
//if from client profile
loadClientNotes(responseArr[1]);
}else{
//if from support module
loadStaffNotesInSupport(responseArr[3]);
}
}
function toggleTicketTypesCombo(checkbox)
{
if (checkbox.checked) {
$('tdTicketTypesCombo').style.display = '';
} else {
$('tdTicketTypesCombo').style.display = 'none';
}
}
//General function to shoot out the async function performed on invoices
function PerformAsyncAction(bolShowStatus,items,fuse,action,successfunc,extraargs)
{
if (bolShowStatus){
setStatus('Working ...');
}
var args = 'items='+items;
if(extraargs!="") args = args+"&"+extraargs;
var opt = {
method: 'post',
postBody: args,
onSuccess: eval(successfunc),
on404: on404,
onFailure: onFailure,
on12152: on12152,
on12002: on12002
}
new Ajax.Request('index.php?fuse='+fuse+'&action='+action, opt);
}
function PerformAsyncUpdater(bolShowStatus,items,fuse,view,extraargs,mydiv)
{
mydiv = mydiv || 'activesnapshot';
if (bolShowStatus){
setStatus(lang('Working ...'));
}
var args = 'items='+items+'&mydiv='+mydiv;
if(extraargs!="") {
args = args+"&"+extraargs;
}
var opt = {
method: 'post',
postBody: args,
onComplete:function(){if($('initialsnapshot')) {$('initialsnapshot').innerHTML=""};unsetStatus('', 1);},
on404: on404,
evalScripts:true,
asynchronous:true,
onFailure: onFailure
}
new Ajax.Updater(mydiv, 'index.php?fuse='+fuse+'&view='+view, opt);
}
function cSelectTab(fuse,view,tabid,grouptabname,div,args)
{
if(args==null){
args="snapshot="+tabid
}else{
args+="&snapshot="+tabid
}
cToggleTabs(tabid,grouptabname);
PerformAsyncUpdater(true,"",fuse,view,args,div);
return false;
}
function cToggleTabs(tabid,grouptabname)
{
//unselect tab
items = getElementsByName_iefix("li",grouptabname);
for(x=0;x