function cbFlashDetect() {
    // APRIL 2008,ControlVersion, GetSwfVer, DetectFlashVer can all be removed.
    // uses SWFOBJECT detection method now.
    var installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
    if (installedVer.major < 8) {
        document.location = "/getFlash";
    }
}

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 < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n);
    return x;
}

function MM_swapImage() { //v3.0
    var i, j = 0,
        x, a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3)
    if ((x = MM_findObj(a[i])) != null) {
        document.MM_sr[j++] = x;
        if (!x.oSrc) x.oSrc = x.src;
        x.src = a[i + 2];
    }
}

function MM_swapImgRestore() { //v3.0
    var i, x, a = document.MM_sr;
    for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_preloadImages() { //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i, j = d.MM_p.length,
            a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++)
        if (a[i].indexOf("#") != 0) {
            d.MM_p[j] = new Image;
            d.MM_p[j++].src = a[i];
        }
    }
}

function MM_openBrWindow(theURL, winName, features) { //v2.0
    newwin = window.open(theURL, winName, features);
    newwin.focus()
}

// Marshill custom begin 

function isValidEmail(src) {
    var emailReg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
    var regex = new RegExp(emailReg);
    return regex.test(src);
}

function jumpError() {
    clearInterval(timerA);
    if (firstObject != "aa") {
        firstObject.focus();
    }
}

function setError(mytext, errType) {
    newDesc = "";
    fullDesc = "";
    for (xx = 0; xx < mytext.length; xx++) {
        newDesc = mytext.substr(xx, 1);
        newDescUpper = newDesc.toUpperCase();
        if (newDesc == newDescUpper) {
            fullDesc += " " + newDesc;
        } else {
            if (xx == 0) {
                fullDesc += newDescUpper;
            } else {
                fullDesc += newDesc;
            }
        }
    }
    if (errType != undefined) {
        fullDesc = fullDesc + " " + "( " + errType + " )";
    }
    return '- ' + '' + fullDesc + '' + newLine;
}

function formChecker(myform) {
    tempRadio = new Object();
    count = 1;
    firstObject = "aa";
    err = '';
	var other = ""
    if (document.getElementById("formChecker_errorText")) {
        errMode = 1;
        newLine = "<BR>";
    } else {
        errMode = 0;
        newLine = "\n";
    }
    for (i = 0; i < myform.elements.length; i++) {
        itemErr = 0;
        myform.elements[i].style.backgroundColor = '';
        myform.elements[i].style.borderColor = '';

		
		 if (myform.elements[i].id == "NomineeHomePhone" && myform.elements[i].type == "text") {
            if (isValidPhone(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidPhoneNumber');
            }
        }
		
		if (myform.elements[i].id == "NomineeBusinessPhone" && myform.elements[i].type == "text") {
            if (isValidPhone(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidPhoneNumber');
            }
        }
		
		 if (myform.elements[i].id == "NominatorHomePhone" && myform.elements[i].type == "text") {
            if (isValidPhone(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidPhoneNumber');
            }
        }
		
		if (myform.elements[i].id == "NominatorBusinessPhone" && myform.elements[i].type == "text") {
            if (isValidPhone(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidPhoneNumber');
            }
        }
		
        if (myform.elements[i].id == "NomineeEmail" && myform.elements[i].type == "text") {
            if (isValidEmail(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidEmail');
            }
        }
		
		if (myform.elements[i].id == "NominatorEmail" && myform.elements[i].type == "text") {
            if (isValidEmail(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidEmail');
            }
        }
		
		if (myform.elements[i].name == "Relation" && myform.elements[i].value == "Other") {
            other = "yes";			
        }
		
		if (myform.elements[i].id == "RelationOtherDescription" && other == "yes") {
			if (myform.elements[i].value == '') {
				itemErr = 1;
				err = err + setError(myform.elements[i].id);
			}
		}
		
		if (myform.elements[i].id == "SignedDate" && myform.elements[i].type == "text") {
            if (isValidDate(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidDate');
            }
        }
		
		if (myform.elements[i].name == "resume" && myform.elements[i].type == "file") {
            if (isValidDate(myform.elements[i].value)) {} else {
                itemErr = 1;
                err = err + setError(myform.elements[i].id + 'IsNotAValidDate');
            }
        }
		
				
        if (myform.elements[i].id != "no" && myform.elements[i].id != "NomineeEmail" && myform.elements[i].id != "NominatorEmail" && myform.elements[i].id != "RelationOtherDescription" && myform.elements[i].id != "NominatorHomePhone" && myform.elements[i].id != "NominatorBusinessPhone" && myform.elements[i].id != "NomineeHomePhone" && myform.elements[i].id != "NomineeBusinessPhone" && myform.elements[i].id != "SignedDate") {
            if (myform.elements[i].type == 'text' || myform.elements[i].type == 'textarea' || myform.elements[i].type == 'select-one') {
                if (myform.elements[i].value == '') {
                    itemErr = 1;
                    err = err + setError(myform.elements[i].id);
                }
            }



            if (myform.elements[i].type == "Radio") {
                radioName = myform.elements[i].name;
                if (tempRadio[radioName] == undefined) {
                    tempRadio[radioName] = 1;
                    isChecked = 0;
                    for (j = 0; j < myform.elements[radioName].length; j++) {
                        if (myform.elements[radioName][j].checked) {

                            myform.elements[radioName][j].style.backgroundColor = '#FFFFD9';
                            isChecked = 1;
                        }
                    }
                    if (isChecked == 0) {
                        itemErr = 1;
                        err = err + setError(myform.elements[i].id);
                    }
                    //alert("ADDING");
                }
            }
        }


        if (itemErr) {
            if (firstObject == "aa") {
                firstObject = myform.elements[i];
            }
            myform.elements[i].style.backgroundColor = '#FFFFD9';
            myform.elements[i].style.borderColor = 'red';
        }
    }
    document.returnValue = false;
    if (err) {

        if (errMode == 0) {
            alert('Please provide the following information:' + newLine + newLine + err);
        }
        if (errMode == 1) {
            bigErr = "<br><img src='/images/icon_caution.gif'><br>" + newLine + err + newLine + "</p>";
            document.getElementById("formChecker_errorText").innerHTML = bigErr;
            document.location.href = '#formCheckerError';
            if (count == 1) {
                timerA = setInterval('jumpError()', 2300);
            } else {
                jumpError();
            }
        }

    } else {
        if (errMode == 1) {
            document.getElementById("formChecker_errorText").innerHTML = "";
        }
        document.returnValue = true;
    }

}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num)) num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10) cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}

function formatCurrencyB(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num)) num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10) cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    cents = "00";
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}

function formatNumber(num, defaultvalue, maxVal) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num)) {
        num = defaultvalue;
    } else {
        if (num > maxVal) {
            num = defaultvalue;
        }
    }
    return num;
}

function Trim(TRIM_VALUE) {
    if (TRIM_VALUE.length < 1) {
        return "";
    }
    TRIM_VALUE = RTrim(TRIM_VALUE);
    TRIM_VALUE = LTrim(TRIM_VALUE);
    if (TRIM_VALUE == "") {
        return "";
    } else {
        return TRIM_VALUE;
    }
}
//End Function


function RTrim(VALUE) {
    var w_space = String.fromCharCode(32);
    var v_length = VALUE.length;
    var strTemp = "";
    if (v_length < 0) {
        return "";
    }
    var iTemp = v_length - 1;
    while (iTemp > -1) {
        if (VALUE.charAt(iTemp) == w_space) {} else {
            strTemp = VALUE.substring(0, iTemp + 1);
            break;
        }
        iTemp = iTemp - 1;
    }
    //End While
    return strTemp;
}
//End Function


function LTrim(VALUE) {
    var w_space = String.fromCharCode(32);
    if (v_length < 1) {
        return "";
    }
    var v_length = VALUE.length;
    var strTemp = "";
    var iTemp = 0;
    while (iTemp < v_length) {
        if (VALUE.charAt(iTemp) == w_space) {} else {
            strTemp = VALUE.substring(iTemp, v_length);
            break;
        }
        iTemp = iTemp + 1;
    }
    //End While
    return strTemp;
}


function ask(data, resultURL) {
    if (confirm(data)) {
        document.location = resultURL;
    }
}

function tellMePrice(myObj, idNum) {
    tellTempArray = new Array();
    tellTempArray2 = eval("array" + idNum);
    for (i = 0; i < tellTempArray2.length; i++) {
        tellTempArray.push(document.getElementById(tellTempArray2[i]).value);
    }
    tellTempArray.sort();
    tellTemp = "";
    for (i = 0; i < tellTempArray.length; i++) {
        tellTemp = tellTemp + "_" + tellTempArray[i];
    }
    if (eval("drop_" + idNum + tellTemp)) {
        document.getElementById("myPrice_" + idNum).innerHTML = formatCurrency(eval("drop_" + idNum + tellTemp));
    }
}

function isValidPhone(phonenumber){
	if (phonenumber != "") {
		var goodChars = "+- 1234567890()"
		for (var t = 0; t < phonenumber.length; t++){   
		    var c = phonenumber.charAt(t);
		    if (goodChars.indexOf(c) < 0) return false;
		}
		return true;
	} else {
		return false;
	}
}

// Checks a string to see if it in a valid date format
// of (D)D/(M)M/(YY)YY and returns true/false

function isValidDate(s) {
    // format D(D)/M(M)/(YY)YY
    var dateFormat = /^\d{1,4}[\.|\/|-]\d{1,2}[\.|\/|-]\d{1,4}$/;

    if (dateFormat.test(s)) {
        // remove any leading zeros from date values
        s = s.replace(/0*(\d*)/gi,"$1");
        var dateArray = s.split(/[\.|\/|-]/);
      
        // correct month value
        dateArray[1] = dateArray[1]-1;

        // correct year value
        if (dateArray[2].length<4) {
            // correct year value
            dateArray[2] = (parseInt(dateArray[2]) < 50) ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]);
        }

        var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]);
        if (testDate.getDate()!=dateArray[0] || testDate.getMonth()!=dateArray[1] || testDate.getFullYear()!=dateArray[2]) {
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function () {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}
