function resetForm() {
	oForm.reset();
};


function g_id(i) {
	return document.getElementById(i);
};


function strip() {
	var temp = "";
	str = oPhrase;
	splitstr = str.split(" ");
	for (i = 0; i < splitstr.length; i++) {
		temp += splitstr[i];
	};
	return temp.length;
};


function isNumeric(val, obj) {
	var oldval=val.substr(0,val.length-1);
	var a = !isNaN(val) ? 1 : (obj.value = oldval);
	if (val == "" || val == null) {
		obj.value = oldval;
		a = 1;
	};
	if (a == 1) {
		prep();
	};
};


function closePickers(obj){
		if(obj='color_picker_div') g_id('mount_picker_div').style.display="none"; g_id('font_picker_div').style.display="none"; if(g_id('template_picker_div')){g_id('template_picker_div').style.display="none"};
		if(obj='font_picker_div') g_id('mount_picker_div').style.display="none"; g_id('color_picker_div').style.display="none"; if(g_id('template_picker_div')){g_id('template_picker_div').style.display="none"};
		if(obj='mount_picker_div') g_id('color_picker_div').style.display="none"; g_id('font_picker_div').style.display="none"; if(g_id('template_picker_div')){g_id('template_picker_div').style.display="none"};
		if(obj='template_picker_div') g_id('mount_picker_div').style.display="none"; g_id('color_picker_div').style.display="none"; g_id('font_picker_div').style.display="none";
		if(!obj) g_id('color_picker_div').style.display="none"; g_id('font_picker_div').style.display="none"; g_id('mount_picker_div').style.display="none"; if(g_id('template_picker_div')){g_id('template_picker_div').style.display="none"};
};

function getLeftPos(inputObj) {
	var returnValue = inputObj.offsetLeft;
	while ((inputObj = inputObj.offsetParent) != null) {
		returnValue += inputObj.offsetLeft;
	};
	return returnValue;
};


function getTopPos(inputObj) {
	var returnValue = inputObj.offsetTop;
	while ((inputObj = inputObj.offsetParent) != null) {
		returnValue += inputObj.offsetTop;
	};
	return returnValue;
};

cX = 0,cY = 0,rX = 0,rY = 0;
function getScroll(d) {
	var w = window.pageXOffset ||
		document.body.scrollLeft || document.documentElement.scrollLeft;
	var h = window.pageYOffset ||
		document.body.scrollTop || document.documentElement.scrollTop;
	if (document.all) {
		cX += w;
		cY += h;
	};
	d.style.left = cX + 10 + "px";
	d.style.top = cY + 10 + "px";
};

function UpdateCursorPosition(e) {
	cX = e.pageX;
	cY = e.pageY;
};


function UpdateCursorPositionDocAll(e) {
	cX = event.clientX;
	cY = event.clientY;
};

if (document.all) {
	document.onmousemove = UpdateCursorPositionDocAll;
} else {
	document.onmousemove = UpdateCursorPosition;
};


    function doChars(p) {
        p = p.replace(/^\s+/, "");
        p = p.replace(/\s+$/, "");
        p = p.replace(/#/g, "#1");
        p = p.replace(/;/g, "#2");
        p = p.replace(/&/g, "#3");
        p = p.replace(/!/g, "#4");
        p = p.replace(/\$/g, "#5");
        p = p.replace(/@/g, "#6");
        p = p.replace(/%/g, "#7");
        p = p.replace(/\*/g, "#8");
        p = p.replace(/\(/g, "#9");
        p = p.replace(/\)/g, "#a");
        p = p.replace(/\+/g, "#b");
        p = p.replace(/\=/g, "#c");
        p = p.replace(/\?/g, "#d");
        p = p.replace(/>/g, "#e");
        p = p.replace(/</g, "#f");
        p = p.replace(/~/g, "#g");
        p = p.replace(/\|/g, "#h");
        return p;
    };


    function ckLegal(phrase) {
        var inPut = phrase;
        var outPut = "";
        var pLen = phrase.length;
        for (var i = 0; i < pLen; i++) {
            var x = inPut.charAt(i);
            outPut += x.match(/[A-Z0-9a-z;:"\-\.,'\/&]/) ? x : " ";
        };
        phrase = outPut;
        return phrase;
    };


function fixP(v) {	var c=isNaN(v)?0:Math.floor(v*100+.5);	return Math.floor(c/100)+'.'+((c%100+100)+'').substr(1,2); };


    function getImg(pass, bg, fract) {
        var textOut = "", siz = "";
        oPhrase = "";
        var hex = "", tex = "";
        var fon = oFont.replace(/\s/g, "");
        if (oForm.line1.value == null ||
            oForm.line1.value.replace(/\s/g, "").length == 0) {
            return;
        };
        if (bg != null) {
            if (bg.length < 7) {
                textBG = bg;
            } else {
                textBG = "";
                tex = bg;
            };
        };
        var pObj = "", sObj = "", fObj = "", cObj = "", frObj = "", f = "", h = "", t = "";
        var fraction = 0;
        var colr = "";
        for (var i = 1; i < 5; i++) {
            pObj = "line" + i;
            sObj = "upperheight" + i;
            fObj = "font" + i;
            cObj = "color" + i;
            frObj = "fraction" + i;
            if (oForm[pObj].value.length > 0) {
                textOut += oForm[pObj].value + "^";
                fraction = (fract == false)? 0 : parseFloat(oForm[frObj][oForm[frObj].selectedIndex].value);
                siz += parseFloat(oForm[sObj][oForm[sObj].selectedIndex].value) + fraction + "~";
                var type = oForm[fObj].type;
                if (type == "text") {
                    var fName = oForm[fObj].value.replace(/\(Round Face\)|\(Bevel Face\)/g, "");
                    f += fName.toLowerCase().replace(/\s/g, "") + "~";
                } else {
                    if(oForm[fObj][oForm[fObj].selectedIndex].value !='blockfonts'){
						f += oForm[fObj][oForm[fObj].selectedIndex].value + "~";
					}else{
						f += 'antique olive medium' + "~";
					};
                };
                if (typeof oForm[cObj] != "undefined") {
                    if (oForm[cObj].type.substr(0, 6) == "select") {
                        colr = oForm[cObj][oForm[cObj].selectedIndex].value;
                        daTxt = oForm[cObj][oForm[cObj].selectedIndex].text;
                    } else {
                        colr = oForm[cObj].alt;
                        daTxt = oForm[cObj].value;
                    };
                } else {
                    daTxt = "g";
                };
                if (daTxt.substr(0, 1) == "p" || daTxt.substr(0, 1) == "c") {
                    hex += colr == "F2FFFF" ? textBG + "~" : colr + "~";
                } else if (daTxt.substr(0, 1) == "m" || daTxt.substr(0, 1) == "g") {
                    hex += daTxt.substr(5) + ".png~";
                } else {
                    hex += daTxt.substr(5) + ".png~";
                };
                hex = hex.replace(/\s/g, "");
            };
        };
        textOut = textOut.substr(0, textOut.length - 1);
        siz = siz.substr(0, siz.length - 1);
        fon = f.substr(0, f.length - 1);
        if (hex.length > 0) {
            hex = hex.substr(0, hex.length - 1);
        };
        var align = oForm.align.selectedIndex;
        g_id("oImg").src = "http://www.signlettersource.com/imageC.php?s=" + siz + "&pass=" + pass + "&hex=" + hex + "&fon=" + fon + "&bg=" + textBG + "&align=" + align + "&tex=" + tex + "&text=" + escape(textOut);
        prep();
    };


    function getcopy(x, obj) {
        if (x.length == 2) {
            x = parseFloat(x);
        };
        if (oMount == -1) {
            oMount = 0;
        };
        if (oTempl == -1) {
            oTempl = 0;
        };
        if (!isNaN(x)) {
            if (obj != null) {
                oForm.imgmount.src = obj[obj.selectedIndex].value.substr(2);
            };
            g_id("frame1").innerHTML = x != null ? mount[x] : "";
        } else {
            oForm.imgpatn.src = obj[obj.selectedIndex].value.substr(1);
            if (obj != null) {
                var y = parseFloat(obj[obj.selectedIndex].value.substr(0, 1));
            };
            g_id("frame2").innerHTML = patrn[y];
        };
    };


    function doOsize() {
        if (oUppht > 30) {
            alert("OVERSIZE LETTERS: These letters may require crating and trucking. A $50.00 per crate charge will be applied. Maximum UPS/FEDEX size limit is 36\" x 48\". Larger sizes ship via truck. Free shipping does NOT apply to oversize shipments.");
        };
    };


    function getCoo(name) {
        var cook = document.cookie;
        var arg = name + "=";
        var alen = arg.length;
        var clen = cook.length;
        var i = 0;
        while (i < clen) {
            var j = i + alen;
            if (cook.substring(i, j) == arg) {
                return cooVal(j, cook);
            };
            i = cook.indexOf(" ", i) + 1;
            if (i == 0) {
                break;
            };
        };
        return null;
    };


    function cooVal(offset, cook) {
        endstr = cook.indexOf(";", offset);
        if (endstr == -1) {
            endstr = cook.length;
        };
        return cook.substring(offset, endstr);
    };


    function toCook(cooName, cookStr) {
        cooName = "[" + cooName;
        for (var c = 1; c <= 99; c++) {
            if (getCoo(cooName + "_" + c)) {
                continue;
            } else {
                cooName += "_" + c;
                break;
            };
        };
        if (document.cookie.length + cooName.length + cookStr.length > 3700) {
            alert("SHOPPING CART IS FULL!\n\nPlease checkout these items before continuing to shop.     ");
            return false;
        } else {
            document.cookie = cooName + "=" + cookStr + "]";
        };
    };


    function total_cookie() {
        var p = 0;
        var prc = 0;
        var tot = 0;
        var c = document.cookie;
        if (c) {
        } else {
            document.cookie = "[html=sessionID(" + Math.random() + ")];";
            return 0;
        };
        p = c.indexOf("Price");
        while (p > 0) {
            p = c.indexOf("~", p) + 1;
            prc = parseFloat(c.substr(p));
            if (isNaN(prc)) {
                prc = 0;
            };
            tot += prc;
            p = c.indexOf("Price", p);
        };
        return tot;
    };


    function tot_cook() {
        g_id('cartT').innerHTML = fixP(total_cookie());
        if (g_id("cart_total") != "undefined") {
            g_id("cart_total").innerHTML = "$" + g_id('cartT').innerHTML;
        };
    };


    function sniff() {
        nav = navigator;
        nav.version = 0;
        pos = 0;
        agt = navigator.userAgent.toLowerCase();
        if (agt.indexOf("firefox") > -1) {
            return 0;
        } else if (agt.indexOf("gecko") > -1) {
            return 0;
        } else if (agt.indexOf("mozilla") > -1) {
            return 0;
        } else if (agt.indexOf("netscape") > -1) {
            return 0;
        } else if (agt.indexOf("msie") > -1) {
            return 0;
        } else if (agt.indexOf("opera/9") > -1) {
            return 1;
        } else if (agt.indexOf("aol") > -1) {
            return 0;
        };
    };




    function doBgCols(x) {
        var xArr, bgCol;
        var list = "012345789ABCDEF";
        for (var i = 0; i < bgC.length; i++) {
            xArr = bgC[i].split(" | ");
            if (xArr[1].length < 7) {
                bgCol = list.indexOf(xArr[1].substr(0, 1)) + list.indexOf(xArr[1].substr(2, 1)) + list.indexOf(xArr[1].substr(4, 1));
            };
            oForm.backgrounds.options[i] = new Option(xArr[0], xArr[1]);
            oForm.backgrounds.options[i].style.background = xArr[1].length < 7 ? "#" + xArr[1] : "#FFFFFF";
            oForm.backgrounds.options[i].style.width = "180px";
            if (xArr[1].length < 7) {
                oForm.backgrounds.options[i].style.color = bgCol > 24 ? "#000000" : "#FFFFFF";
            };
        };
        oForm.backgrounds.selectedIndex = x;
    };


    function filtr(x) {
        rtn = false;
        if (Fltr.length > 0) {
            var fon = oFont;
            var eArr = new Array;
            eArr = Fltr.split("/");
            var eaLen = eArr.length;
            for (var i = 0; i < eaLen; i++) {
                fList = eArr[i].split("~");
                if (fList[0] == fon) {
                    if (parseFloat(fList[1]) == 0) {
                        rtn = x.match(/[0-9\/&\-\:;.,']/) ? true : false;
                    } else if (fList[1] == 1) {
                        rtn = x.match(/[\/&]/) ? true : false;
                    } else if (fList[1] == 2) {
                        rtn = x.match(/[\/]/) ? true : false;
                    } else if (fList[1] == 3) {
                        rtn = x.match(/[0-9\/]/) ? true : false;
                    } else if (fList[1] == 4) {
                        rtn = x.match(/[\/\-\:;.]/) ? true : false;
                    } else if (fList[1] == 5) {
                        rtn = x.match(/-/) ? true : false;
                    } else if (fList[1] == 6) {
                        rtn = x.match(/[\/&\-\:;.,']/) ? true : false;
                    } else if (fList[1] == 7) {
                        rtn = x.match(/[0-9]/) ? true : false;
                    } else if (fList[1] == 8) {
                        rtn = x.match(/[a-z0-9]/) ? true : false;
                    } else if (fList[1] == 9) {
                        rtn = x.match(/[a-z0-9\/&\-\:;.,']/) ? true : false;
                    } else if (fList[1] == 10) {
                        rtn = x.match(/[a-z]/) ? true : false;
                    };
                    return rtn;
                };
            };
        };
    };







    patternPrice = 2.25;

   

