//Custom JavaScript Functions by Shawn Olson
//Copyright 2006-2008
//http://www.shawnolson.net
//If you copy any functions from this page into your scripts, you must provide credit to Shawn Olson & http://www.shawnolson.net
//*******************************************

function stripCharacter(words,character) {
    //documentation for this script at http://www.shawnolson.net/a/499/
    var spaces = words.length;
    for(var x = 1; x<spaces; ++x){
        words = words.replace(character, "");
    }
    return words;
}

function changecss(theClass,element,value) {
    //Last Updated on June 23, 2009
    //documentation for this script at
    //http://www.shawnolson.net/a/503/altering-css-class-attributes-with-javascript.html
    var cssRules;

    var added = false;
    for (var S = 0; S < document.styleSheets.length; S++){

        if (document.styleSheets[S]['rules']) {
            cssRules = 'rules';
        } else if (document.styleSheets[S]['cssRules']) {
            cssRules = 'cssRules';
        } else {
        //no rules found... browser unknown
        }

        for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
            if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
                if(document.styleSheets[S][cssRules][R].style[element]){
                    document.styleSheets[S][cssRules][R].style[element] = value;
                    added=true;
                    break;
                }
            }
        }
        if(!added){
            if(document.styleSheets[S].insertRule){
                document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length);
            } else if (document.styleSheets[S].addRule) {
                document.styleSheets[S].addRule(theClass,element+': '+value+';');
            }
        }
    }
}

function checkUncheckAll(theElement) {
    var theForm = theElement.form, z = 0;
    for(z=0; z<theForm.length;z++){
        if(theForm[z].type == 'checkbox' && theForm[z].name != 'checkall'){
            theForm[z].checked = theElement.checked;
        }
    }
}

function checkUncheckSome(controller,theElements) {
    //Programmed by Shawn Olson
    //Copyright (c) 2006-2007
    //Updated on August 12, 2007
    //Permission to use this function provided that it always includes this credit text
    //  http://www.shawnolson.net
    //Find more JavaScripts at http://www.shawnolson.net/topics/Javascript/

    //theElements is an array of objects designated as a comma separated list of their IDs
    //If an element in theElements is not a checkbox, then it is assumed
    //that the function is recursive for that object and will check/uncheck
    //all checkboxes contained in that element

    var formElements = theElements.split(',');
    var theController = document.getElementById(controller);
    for(var z=0; z<formElements.length;z++){
        theItem = document.getElementById(formElements[z]);
        if(theItem.type){
            if (theItem.type=='checkbox') {
                theItem.checked=theController.checked;
            }
        } else {
            theInputs = theItem.getElementsByTagName('input');
            for(var y=0; y<theInputs.length; y++){
                if(theInputs[y].type == 'checkbox' && theInputs[y].id != theController.id){
                    theInputs[y].checked = theController.checked;
                }
            }
        }
    }
}

function changeImgSize(objectId,newWidth,newHeight) {
    imgString = 'theImg = document.getElementById("'+objectId+'")';
    eval(imgString);
    oldWidth = theImg.width;
    oldHeight = theImg.height;
    if(newWidth>0){
        theImg.width = newWidth;
    }
    if(newHeight>0){
        theImg.height = newHeight;
    }

}

function changeColor(theObj,newColor){
    eval('var theObject = document.getElementById("'+theObj+'")');
    if(theObject.style.backgroundColor==null){
        theBG='white';
    }else{
        theBG=theObject.style.backgroundColor;
    }
    if(theObject.style.color==null){
        theColor='black';
    }else{
        theColor=theObject.style.color;
    }
    //alert(theObject.style.color+' '+theObject.style.backgroundColor);
    switch(theColor){
        case newColor:
            switch(theBG){
                case 'white':
                    theObject.style.color = 'black';
                    break;
                case 'black':
                    theObject.style.color = 'white';
                    break;
                default:
                    theObject.style.color = 'black';
                    break;
            }
            break;
        default:
            theObject.style.color = newColor;
            break;
    }
}

//Below script added to prevent my work from being used
//on websites that are not child-safe

var restrictWords = new Array('free sex','amateurmatch.com','free porn');

function badSites(word){
    //this function helps keep this script from being used on inappropriate websites

    var badword = false;
    var word = new String(word);
    word = word.toLowerCase();

    for (var i = 0; i<restrictWords.length; i++){
        if (word.match(restrictWords[i])){

            badword = true;
            alert("This website is improperly using a script from www.shawnolson.net.\n\nWhile the script is free ... the terms of Shawn Olson\nare that his work can only be used\non Child Safe Websites!\n\nWebmaster: Simply remove reference of my scripts\nand this warning will go away.");
        }
    }
    if (badword==true){
        document.location='http://www.fbi.gov/hq/cid/cac/states.htm';
    }
    return badword;
}

var siteCheckArray = new Array(document.title,document.URL);
var siteCheckRound = 0;

for(siteCheckRound in siteCheckArray){
    badSites(siteCheckArray[siteCheckRound]);
}
