// JScript File

function Trim (string) {
	if (string.length > 0) {
		string = RemoveLeadingSpaces (string);
	}
	if (string.length > 0) {
		string = RemoveTrailingSpaces(string);
	}
	return string;
}

function RemoveLeadingSpaces(string) {
	while(string.substring(0, 1) == " ") {
		string = string.substring(1, string.length);
	}
	return string;
}

function RemoveTrailingSpaces(string) {
	while(string.substring((string.length - 1), string.length) == " ") {
		string = string.substring(0, (string.length - 1));
	}
	return string;
} 

function showDiv(id) {
    var div1 = document.getElementById(id);
    if (div1) {
        div1.style.display="block";
    }    
}

function hideDiv(id) {
    var div1 = document.getElementById(id);
    if (div1) {
        div1.style.display="none";
    }    
}     

function validateFields(obj,functype) {
// checks all text fields
var result;

switch (functype) {
        case "blank":
            result = design_validate_re(/\S+/,obj,'- Cannot be blank');
            break;
        case "email":
            var re=/^([A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*)$/;
            result = design_validate_re(re,obj,'- (required)');   
            break;
        case "zip":
            result = design_validate_re(/^([0-9]{5}(\-[0-9]{4})?)$/,obj,'- ZIP Code (U.S.) (required)');
            break;
        case "phone":
            result = design_validate_re(/^(((\+?1[\. \-]?)?\(?[2-9][0-9]{2}\)?[\. \-\/]*)?[2-9][0-9]{2}[\. \-]?[0-9]{4})$/,obj,'Telephone Number (US and Canada) (required)');
            break;
        case "select":
            result = design_validate_select(1, obj, '- First item is not a valid selection.');
            break;
        case "integer":
            if (Trim(obj.value)=="") {
                obj.value = 0;
            }
            result = design_validate_re(/^\d+$/,obj,'- Non-negative whole number (required)');
            break;  
        case "percent":  
            if (Trim(obj.value)=="") {
                obj.value = 0;
            }
            result = design_validate_re(/^([0-9]|[1-9][0-9]|100)$/,obj,'- Percent: 0-100 (required)');
            break;    
        default:
            result=true;
            break;
    }
    return result;
}

function checkField(obj,functype) {
// used in onblur event
    var result = validateFields(obj, functype);
    var td = document.getElementById("TD" + obj.id);
        
    if (!result) { 
 		return false;
    }
    else {
        // change class back to normal
        if (td.className == "error") {
            td.className="";
        }    
        return true;
	}             
}
function checkFieldQH0806(obj,functype) {
// used in onblur event
// slightly modified to account for different style for Quick Hits 08/2006
    var result = validateFields(obj, functype);
    var td = document.getElementById("TD" + obj.id);
        
    if (!result) { 
 		return false;
    }
    else {
        // change class back to normal
        if (td.className == "error") {
            td.className="black10";
        }    
        return true;
	}             
}
// validates all fields at once
// slightly modified to account for different style for Quick Hits 08/2006
function TCSFormValidateQH0806(formObj) {
    // hidden input field
    var txtMsg = document.getElementById("txtErrMsg");
    var strMsg = "";
    txtMsg.value="";
    
    // list of error fields
    var ul = document.getElementById("errorlist");
    var div = document.getElementById("errormsg");
    for (var i=0; i<formObj.length; i++) {
        var e = formObj.elements[i];
        var td = document.getElementById("TD" + e.id);
        var result=true;
        if (td) {
            result = validateFormFields(e);
        
            if (!result) { 
                strMsg = "<LI>*" + e.title + "</LI>";
                txtMsg.value = txtMsg.value + strMsg; 
                td.className = "error";
            }     
           
            // return class to normal
            else { 
                td.className="black10";
	        }    
        }
    } // for

    if (Trim(strMsg)=="") {
        div.style.display="none";
        ul.innerHTML="";
        return true;
    }    
    else {
        div.style.display="block";
        ul.innerHTML = txtMsg.value;
        return false;
    }    
}
function validateFormFields(e) {
    var result = true;
    var validation = e.getAttribute("tcs_validation");
    if (validation!=null) {
        switch (validation) {
        case "string-req":
            result = design_validate_re(/\S+/,e,'- Cannot be blank');
            break;
        case "ZipCode":
            result = design_validate_re(/^([0-9]{5}(\-[0-9]{4})?)$|^$/,e,'- ZIP Code (U.S.)');
            break;
        case "ZipCode-req":
            result=design_validate_re(/^([0-9]{5}(\-[0-9]{4})?)$/,e,'- ZIP Code (U.S.) (required)');
            break;    
        case "phoneUSCA":
            result=design_validate_re(/^(((\+?1[\. \-]?)?\(?[2-9][0-9]{2}\)?[\. \-\/]*)?[2-9][0-9]{2}[\. \-]?[0-9]{4})$|^$/,e,'Telephone Number (US and Canada)');
            break;
        case "phoneUSCA-req":
            result = design_validate_re(/^(((\+?1[\. \-]?)?\(?[2-9][0-9]{2}\)?[\. \-\/]*)?[2-9][0-9]{2}[\. \-]?[0-9]{4})$/,e,'Telephone Number (US and Canada) (required)');
            break;
        case "email":
            var re=/^([A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*)$|^$/;
            result=design_validate_re(re,e,'- Email address is not in a valid format');    
            break;
        case "email-req":
            var req=/^([A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-\/=\?\^_`\{-~]+)*)$/;
            result = design_validate_re(req,e,'- (required)');   
            break;
        case "select-req":
            result = design_validate_select(1, e, '- First item is not a valid selection.');
            break;
        case "nonNegInt-req":
            if (Trim(e.value)=="") {
                e.value = 0;
            }
            result = design_validate_re(/^\d+$/,e,'- Non-negative whole number (required)');
            break;  
        case "percent-req":
            if (Trim(e.value)=="") {
                e.value = 0;
            }
            result = design_validate_re(/^([0-9]|[1-9][0-9]|100)$/,e,'- Percent: 0-100 (required)');
            break;          
        default:
            result=true;
            break;
        }
    }
    return result;
}

// validates all fields at once
function TCSFormValidate(formObj) {
    // hidden input field
    var txtMsg = document.getElementById("txtErrMsg");
    var strMsg = "";
    txtMsg.value="";
    // list of error fields
    var ul = document.getElementById("errorlist");
    var div = document.getElementById("errormsg");

    for (var i=0; i<formObj.length; i++) {
        var e = formObj.elements[i];
        var td = document.getElementById("TD" + e.id);
        var result=true;
        if (td) {
       // check whether email or phone is required
            if (e.id=="howContact") {
                setTCS_Attributes();
            }
            result = validateFormFields(e);
            
            if (!result) { 
                strMsg = "<LI>*" + e.title + "</LI>";
                txtMsg.value = txtMsg.value + strMsg; 
                td.className = "error";
                
           /*     if ('function' == typeof e.scrollIntoView || 'object' == typeof e.scrollIntoView) 
	                e.scrollIntoView();
	            if ('function' == typeof design_canElementReceiveFocus) {
                    if (design_canElementReceiveFocus(e)) e.focus();
                } 
                else { e.focus(?; } */
            }     
           
            // return class to normal
            else { 
                td.className="";
	        }    
        }
    } // for

    if (Trim(strMsg)=="") {
        div.style.display="none";
        ul.innerHTML="";
        return true;
    }    
    else {
        div.style.display="block";
        ul.innerHTML = txtMsg.value;
        return false;
    }    
}

function CommaFormatted(amount)
{
    //amount= new String(amount);
    amount = amount+"";
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) 
	    { return ''; }
	var minus = '';
	if(i < 0) 
	    { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	
	if(n.length > 0) 
	    { a.unshift(n); }
	n = a.join(delimiter);
//	if(d.length < 1) 
//	    { amount = n; }
//	else 
//	    { amount = n + '.' + d; }
    amount = n;
	amount = minus + amount;
	return amount;
}

function TCSsubmit(formID) {
    var formObj = document.getElementById(formID);
    var validate = TCSFormValidate(formObj);
    return validate;
}

function getArgs() {
	var args = new Object();
	var query = location.search.substring(1);		// get query string
	var pairs = query.split("&");					// break at &
	for (i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('=');			// look for name=value
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);	// extract the name
		var value = pairs[i].substring(pos+1);		// extract the value
		args[argname] = unescape(value);			// store as a property
	}
	return args;
}

		
function openPopup(url,width,height) {
// Shows dialog windows
	if (url.length >0) {
	    var sFeatures;
    	
	    var nLeft = (screen.width / 2) - width/2;
	    var nTop = (screen.height / 2) - height/2;
	    sFeatures = "width=" + width + ",height=" + height+ ",left=" + nLeft + ",top=" + nTop + ",location=no,scrollbars=yes,resizable=no,status=no,toolbar=no,menubar=no";
	    var newWindow=window.open(url,"",sFeatures);
	    newWindow.focus();
	}
}

function getParentURL() {
    var pUrl = window.opener.location.href;
    pUrl = truncateURL(pUrl);
    return pUrl;   
}

function getURL() {
    var url = window.location.href;
    url = truncateURL(url);
    return url;   
}

function truncateURL(url) {
    var len = url.length-1;
    if (url.indexOf("#",len) > -1)
       url = url.substr(0,len);
    return url;   
}	

function truncate(txtField) {
// prevents NaN if user enters a decimal point
    var val = txtField.value;
    val = Math.round(val);
    
    if(isNaN(val)) {}
    else {
        txtField.value = val;
    }    
}