function showhide(targetID) {
	//change target element mode
	var elementmode = document.getElementById(targetID).style;
	elementmode.display = (!elementmode.display) ? 'none' : '';
}

function changetext(changee,oldText,newText) {
	//changes text in source element
	var elementToChange = document.getElementById(changee);
	elementToChange.innerHTML = (elementToChange.innerHTML == oldText) ? newText : oldText;
}

function workforchange(targetID,sourceID,oldContent,newContent) {
	showhide(targetID);
	changetext(sourceID,oldContent,newContent);
}


function changetext2(changee,oldText,oldImageUrl,newText,newImageUrl) {
	//changes text in source element
	var elementToChange = document.getElementById(changee);
	elementToChange.innerHTML = (elementToChange.innerHTML == '<img src="' + oldImageUrl + '"/>' + oldText) ? '<img src="' + newImageUrl + '"/>' + newText: '<img src="' + oldImageUrl + '"/>' + oldText;
}

function workforchange2(targetID,sourceID,oldContent,oldImageUrl,newContent,newImageUrl) {
	showhide(targetID);
	changetext2(sourceID,oldContent,oldImageUrl,newContent,newImageUrl);
}

function showElem(targetId) {
    var elemStyle = document.getElementById(targetId).style;
    elemStyle.display = '';	
}


function isInt(sText) {
    var ValidChars = "0123456789";
    var IsNumber=true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;
}

function isDecimal(sText) {
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;
}

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function showAjaxImage(imgId) {
    var elem = document.getElementById(imgId);
    elem.style.display = "inline";
}

function isInvalidChars(inputStr) {
    if(inputStr.search(/<[^>]*>|[\[\]<>;%={}~\^()`\*\|\\]/g) > -1)
        return true;
    else 
        return false;
}

function isValidEmail(inputStr) {
    var filter = /^([A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)$/i;
    //var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    if(filter.test(inputStr))
        return true;
    else
        return false;
}

function isValidABANumber(input) {
    if (input.length != 9) 
        return 999;
        
    var last = input.charAt(8);
    var wgt = 7, sum = 0, dgt = 0;
    for (i9 = 8; i9 > 0; i9--) {
	    sum += wgt * input.charAt(i9 - 1);
	    wgt = (wgt == 7) ? 3 : (wgt == 3) ? 1 : 7;
    }
    dgt = sum % 10;
    if (dgt) dgt = 10 - dgt;
    if (dgt == last) 
        return true;
    
    return 998;
}

function issl() {
    var MyWindow = window.open('https://secure.comodo.net/ttb_searcher/trustlogo?v_querytype=W&v_shortname=SC&v_search=https://www.mbtrading.com/secure/comodo.html&x=6&y=5','MyWindow','location,menubar,scrollbars,resizable,width=425,height=560,left=100,top=10')
}

function isPhone(sText)
{		
    var ValidChars = "0123456789";
    var IsNumber=true;
    var Char;

    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
	    Char = sText.charAt(i); 
	    if (ValidChars.indexOf(Char) == -1)
		    IsNumber = false;
    }
    return IsNumber;   
}

function autoFormatPhone(elemId) {
    var ValidChars = "0123456789";
    var elem = document.getElementById(elemId);
    var phoneStr = "";
    
    for (i = 0; i < elem.value.length; i++) 
    { 
	    ch = elem.value.charAt(i); 
	    if (ValidChars.indexOf(ch) != -1)
		    phoneStr += ch;
    }    
    elem.value = phoneStr;
}

function validateDate(dateStr) {
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    if ((dateStr.match(RegExPattern)) && (dateStr!='')) {
        return true;
    } else {
        return false;
    } 
}

function isValidAge(dateStr) {
    var maxLimit = 200;
    var minLimit = 18;    
    var today = new Date();
    var enteredDate = new Date(dateStr);
    
    if((today.getFullYear() - enteredDate.getFullYear()) == minLimit) {
        if(today.getMonth() < enteredDate.getMonth() || (enteredDate.getMonth() == today.getMonth() && today.getDate() < enteredDate.getDate())) {
            minLimit++;
        }
    }
    
    if((today.getFullYear() - enteredDate.getFullYear()) < minLimit || (enteredDate.getFullYear() - today.getFullYear()) > maxLimit)
        return false;
    else
        return true;
}

function isExpiredDate(dateStr) {
    var today = new Date();
    var enteredDate = new Date(dateStr);
    
    if(today > enteredDate) 
        return true;
    else
        return false;
}

var validCharList = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`~!@#$%^&*()_-=+|\\[]{}?/,.;:"\'<>';
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var numeric = '0123456789';
var specialChar = '`~!@#$%^&*()_-=+|\\[]{}?/,.;:"\'<>';

function checkTripleChars(xx) {             // ensure no more than 3 of any one char
	var i, j
	var a = new Array()
	for (i=0; i<validCharList.length; i++)      // set up array, init all to zero
		a[i] = 0
	for (i=0; i<xx.length; i++)     // increment each char (count)
		a[validCharList.indexOf(xx.charAt(i))] += 1
	for (i=0; i<validCharList.length; i++) {     // can't allow more than 3 of any one char
		if (a[i] > 3) 
			return false
	}
	return true;                     // As per Brenton, AAAaaa123 is valid (case sensitive, A != a)
}

function matches(xx, zz) {        // ensure at least one char in xx is in zz
	for (i9 = 0; i9 < xx.length; i9++) {
		if (zz.indexOf(xx.charAt(i9)) > -1)
			return true
	}
	return false;
}

function checkPasswordUniqueness(xx) {
    if(!matches(xx, alphabet) || !matches(xx, numeric) || !matches(xx, specialChar))
        return false;
    return true;
}

function checkPasswordLen(xx) {
	if (xx.length >= 8 && xx.length <= 15)
		return true
	return false
}

function checkPasswordValidChar(xx) {
	var c;
	for (var i = 0; i < xx.length; i++) {
		c = xx.charAt(i);
		if (validCharList.indexOf(c) < 0)
			return false
	}
	return true
}

function clickButton(e, buttonid){ 
	var bt = document.getElementById(buttonid); 
	if (typeof bt == 'object'){ 
		if(navigator.appName.indexOf("Netscape")>(-1)){ 
			if (e.keyCode == 13){ 
				bt.click(); 
				return false; 
			}
		} 
		if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){ 
			if (event.keyCode == 13){ 
				bt.click(); 
				return false; 
			} 
		} 
	}
} 

function getElemLeft(elem)
{
	if (elem.offsetParent)
		return elem.offsetLeft + getElemLeft(elem.offsetParent);
	else
		return elem.offsetLeft;
}

function getElemTop(elem)
{
	if (elem.offsetParent)
		return (elem.offsetTop + getElemTop(elem.offsetParent));
	else
		return (elem.offsetTop);
}

function errorFocus(elem)
{
    document.getElementById(elem).focus();
}


function ValidSSN(elem) {
	var nums = '0123456789-';
	var ssv = elem.value;
	
	if (ssv == '' || ssv.charAt(3) != "-" || ssv.charAt(6) != "-" || ssv.length != 11) {
		return false;
	}
	for (i9 = 0; i9 <= ssv.length; i9++) {
		if (nums.indexOf(ssv.charAt(i9)) == -1) {
			return false;
		}
	}
	//document.f.TaxIDCode1.value = "1" // TaxIDCode1:  1=SSN, 2=FID, 5=W-8BEN
	return true;
}
function ValidFEDID(elem) {
	var nums = '0123456789-';
	var fdd = trim(elem.value);
	
	if (fdd == '' || fdd.charAt(2) != "-" || fdd.length != 10) {
		return false;
	}
	for (var i = 0; i <= fdd.length; i++) {
		if (nums.indexOf(fdd.charAt(i)) == -1) {
			return false;
		}
	}
	//document.f.TaxIDCode1.value = "2" // TaxIDCode1:  1=SSN, 2=FID, 5=W-8BEN
	return true;
}

function checkUSZip(xx) {
	rcd = "";
	for (i9 = 0; i9 <= xx.length; i9++) {
		if ("0123456789".indexOf(xx.charAt(i9)) != -1) {
			rcd += xx.charAt(i9);
		}
	}
	if (rcd.length == 5 || rcd.length == 9) {
		if (rcd.length == 9) {
			rcd = rcd.substr(0, 5) + "-" + rcd.substr(5, 4);
		}
		return true;
	}
	return false;
}


function checkEmail(elemId) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(elem.value == "") {
        errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
        isValid = false;
    }    
    if(isValid) {
        if(!isValidEmail(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }    
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
        
    return isValid;
}

function checkConfirm(elemId, compareElemId, message) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    var confirmElem = document.getElementById("txt_"+compareElemId);
    
    if(elem.value == "") {
        errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
        isValid = false;
    }
    if(isValid) {
        if(elem.value != confirmElem.value) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> must match with " + message;
            isValid = false;
        }
    }     
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkPhone(elemId, isRequired) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(isRequired) {
        if(elem.value == "") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(isValid && elem.value.length > 0) {       
        if(elem.value.length < 10 || elem.value.length > 15) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid length";
            isValid = false;
        }
    }   
    if(isValid) {       
        if(!isPhone(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }     
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkText(elemId, isRequired) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(isRequired) {
        if(elem.value == "") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(isValid && elem.value.length > 0) {       
        if(isInvalidChars(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkText2(elemId, errElemId, isRequired) {
    var isValid = true;
    var elem = document.getElementById(elemId);    
    var errElem = document.getElementById(errElemId);
    
    if(isRequired) {
        if(elem.value == "") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(isValid && elem.value.length > 0) {       
        if(isInvalidChars(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkSelect(elemId, isRequired, zeroAllowed) {
    var isValid = true;
    var elem = document.getElementById('ddl_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(isRequired) {
        if(elem.value.length < 1) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(!zeroAllowed) {
        if(elem.value == "0") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    } 
    if(isValid && elem.value.length > 0) {       
        if(isInvalidChars(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkSelect2(elemId, errElemId, isRequired, zeroAllowed) {
    var isValid = true;
    var elem = document.getElementById(elemId);    
    var errElem = document.getElementById(errElemId);
    
    if(isRequired) {
        if(elem.value.length < 1) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(!zeroAllowed) {
        if(elem.value == "0") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    } 
    if(isValid && elem.value.length > 0) {       
        if(isInvalidChars(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkDate(elemId, isRequired) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    	
    if(isRequired) {
        if(elem.value == "") {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
            isValid = false;
        }
    }   
    if(isValid && elem.value.length > 0) {       
        if(!validateDate(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid format";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkUsername(elemId) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(elem.value == "") {
        errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
        isValid = false;
    }        
    if(isValid && elem.value.length > 0) {       
        if(elem.value.indexOf(" ") > -1 || elem.value.indexOf("-") > -1 || elem.value.indexOf("\"") > -1 || elem.value.indexOf("'") > -1) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid character(s)";
            isValid = false;
        }
        if(elem.value.length < 6 || elem.value.length > 15) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid length (must be 6-15 chars)";
            isValid = false;
        }
        if(elem.value.charAt(elem.value.length - 1) == '0') {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> can not contain trailing zero(s)";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkPassword(elemId, usernameId) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(elem.value == "") {
        errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
        isValid = false;
    }        
    if(isValid && elem.value.length > 0) {       
        if(!checkPasswordLen(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid length (must be 8 - 15 chars)";
            isValid = false;
        }
        if(elem.value.indexOf(" ") > -1) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> no white space(s) allowed";
            isValid = false;
        }
        if(!checkPasswordUniqueness(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> must contains at least one char, one number and one special char";
            isValid = false;
        }
        if(!checkTripleChars(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> can not contain more than 3 similar char (e.g. 'a2b2c2d2' not allowed)";
            isValid = false;
        }
        if(elem.value.indexOf(document.getElementById(usernameId).value) != -1) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> can not contain or be the same as username";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}

function checkPIN(elemId) {
    var isValid = true;
    var elem = document.getElementById('txt_'+elemId);    
    var errElem = document.getElementById('err_'+elemId);
    
    if(elem.value == "") {
        errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> required";
        isValid = false;
    }        
    if(isValid && elem.value.length > 0) {       
        if(!isPhone(elem.value)) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid character(s)";
            isValid = false;
        }
        if(elem.value.length != 4) {
            errElem.innerHTML = "<img src='../i/cross_red.gif' border='0' /> invalid length (must be 4 digits)";
            isValid = false;
        }
    }      
    if(isValid) 
        errElem.innerHTML = "<img src='../i/check_green.gif' border='0' />";
    return isValid;
}