function resizeWindow(){
var iw, ih; // Set inner width and height
if (window.innerWidth == null) {
iw = document.body.clientWidth;
ih=document.body.clientHeight; 
}
else {
iw = window.innerWidth;
ih = window.innerHeight;
}
        var frameWidth = iw - 400;
        document.getElementById('body').style.width = frameWidth;
        var headerWidth = iw - 200;
        document.getElementById('header').style.width = headerWidth;

}
function changeCurrent(){
        var c = prompt('What key would you like to change the current key to? Please choose one of the following:  C, C#/Db, D, Eb/D#, E, F, F#/Gb, G, Ab/G#, A, Bb/A#, B.', '');
        var keys = ('C', 'C#/Db', 'D', 'Eb/D#', 'E', 'F', 'F#/Gb', 'G', 'Ab/G#', 'A', 'Bb/A#', 'B');
        var valid = 0;
        for(i = 0; i < keys.length; i++){
                if(c == keys[i]){
                alert(keys[1] + c);
                        valid = 1;        
                }
        }
        if(valid == 1){
                document.getElementById('currentKey').value = c;
        }else{
                alert('You have entered an incorrect key!');
                changeCurrent();
        }
        
}

function guessKey(song){
        var possibleKey = "und";
        var probableKey = "und";
        var key = "und";
        var keys = new Array();
                keys[0] = 'C';
                keys[1] = 'C#';
                keys[2] = 'Db';
                keys[3] = 'D';
                keys[4] = 'D#';
                keys[5] = 'Eb';
                keys[6] = 'E';
                keys[7] = 'F';
                keys[8] = 'F#';
                keys[9] = 'Gb';
                keys[10] = 'G';
                keys[11] = 'G#';
                keys[12] = 'Ab';
                keys[13] = 'A';
                keys[14] = 'A#';
                keys[15] = 'Bb';
                keys[16] = 'B';
        var flat = new Array();
                flat[0] = 'C';
                flat[1] = 'Db';
                flat[2] = 'D';
                flat[3] = 'Eb';
                flat[4] = 'E';
                flat[5] = 'F';
                flat[6] = 'Gb';
                flat[7] = 'G';
                flat[8] = 'Ab';
                flat[9] = 'A';
                flat[10] = 'Bb';
                flat[11] = 'B';
        var sharp = new Array();
                sharp[0] = 'C';
                sharp[1] = 'C#';
                sharp[2] = 'D';
                sharp[3] = 'D#';
                sharp[4] = 'E';
                sharp[5] = 'F';
                sharp[6] = 'F#';
                sharp[7] = 'G';
                sharp[8] = 'G#';
                sharp[9] = 'A';
                sharp[10] = 'A#';
                sharp[11] = 'B';
        
        var one;
        var fourth = new Array();
        var fifth = new Array();
        var minors = new Array();
        
        var chords = new Array();
        song = song.replace(/( )+/g, " ");//get rid of extra spaces
        song = song.replace("\n", " ");//get rid of new line characters
        chords = song.split(" ");  //split the song into words

        var posKeys = new Array();
        var incr = 0;
        for(i = 0; i < chords.length; i++){  //cycle through chords
                for(a = 0; a < keys.length; a++){  //then cycle through keys and compare the chords to keys

                        if(chords[i] == keys[a]){   //if find a match
                                if(posKeys.indexOf(chords[i]) == -1){
                                        posKeys[incr] = chords[i];  //add to posKeys
                                        incr++;  //increment the incr variable
                                }//end if to check for chords already in posKeys
                        }
                }
        }
        
        for(ii = 0; ii < posKeys.length; ii++){
                var flat = 'yes';
                one = flat.indexOf(posKeys[ii]);
                if(one == -1){
                        one = sharp.indexOf(posKeys[ii]);
                        flat = 'no';
                }
                
                if(flat == 'yes'){
                        var num4 = one + 5;
                        if(num4 > 11){num4 -= 12;}
                        var four = flat[num4]; //set fourth chord
                        fourth[0] = four;
                        fourth[1] = four + "7";
                        fourth[2] = four + "2";
                        fourth[3] = four + "add2";
                        
                        var num5 = one + 7;
                        if(num5 > 11){num5 -= 12;}
                        var five = flat[num5]; //set fifth chord
                        fifth[0] = five;
                        fifth[1] = five + "7";
                        fifth[2] = five + "seventh";
                        fifth[3] = five + "4";
                        fifth[4] = five + "sus4";
                        fifth[5] = five + "sus";
                        
                        var num2 = one + 2;
                        if(num2 > 11){num2 -= 12;}
                        var num3 = one + 4;
                        if(num3 > 11){num3 -= 12;}
                        var num9 = one + 9;
                        if(num9 > 11){num9 -= 12;}
                        var mins = ('m', 'm7', 'min', 'min7', 'minor', 'minor7');
                        var inc = 0;
                        var first = flat[num2]; //set first minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = first + mins[i];
                                inc++;
                        }
                        var second = flat[num4]; //set second minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = second + mins[i];
                                inc++;
                        }
                        var third = flat[num9]; //set third minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = third + mins[i];
                                inc++;
                        }
                }else{
                        var num4 = one + 5;
                        if(num4 > 11){num4 -= 12;}
                        var four = sharp[num4]; //set fourth chord
                        fourth[0] = four;
                        fourth[1] = four + "7";
                        fourth[2] = four + "2";
                        fourth[3] = four + "add2";
                        
                        var num5 = one + 7;
                        if(num5 > 11){num5 -= 12;}
                        var five = sharp[num5]; //set fifth chord
                        fifth[0] = five;
                        fifth[1] = five + "7";
                        fifth[2] = five + "seventh";
                        fifth[3] = five + "4";
                        fifth[4] = five + "sus4";
                        fifth[5] = five + "sus";
                        
                        var num2 = one + 2;
                        if(num2 > 11){num2 -= 12;}
                        var num3 = one + 4;
                        if(num3 > 11){num3 -= 12;}
                        var num9 = one + 9;
                        if(num9 > 11){num9 -= 12;}
                        var mins = ('m', 'm7', 'min', 'min7', 'minor', 'minor7');
                        var inc = 0;
                        var first = sharp[num2]; //set first minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = first + mins[i];
                                inc++;
                        }
                        var second = sharp[num4]; //set second minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = second + mins[i];
                                inc++;
                        }
                        var third = sharp[num9]; //set third minor chord
                        for(i = 0; i < mins.length; i++){
                                minors[inc] = third + mins[i];
                                inc++;
                        }
                }//end if else
                
          //start key guess logic
                var hasFourth = 'false';
                var hasFifth = 'false';
                
                for(a = 0; a < fourth.length; a++){
                        for(i = 0; i < chords.length; i++){
                                if(chords[i] == fourth[a]){
                                        possibleKey = posKeys[ii];
                                        hasFourth = 'true';
                                }
                        }
                }
                
                for(a = 0; a < fifth.length; a++){
                        for(i = 0; i < chords.length; i++){
                                if(chords[i] == fifth[a]){
                                        possibleKey = posKeys[ii];
                                        hasFifth = 'true';
                                }
                        }
                }
                
                if(hasFourth == 'true' && hasFifth == 'true'){
                        probableKey = posKeys[ii];
                        for(i = 0; i < minors.length; i++){
                                for(a = 0; a < chords.length; a++){
                                        if(chords[a] == minors[i]){
                                                key = posKeys[ii];
                                        }
                                }
                        }
                }
                
                fourth.length = 0;
                fifth.length = 0;
                minors.length = 0;
        }//end cycle throught posKeys
        
        if(key != 'und'){
                alert('The song key is ' + key + '.');
        }else if(probableKey != 'und'){
                alert('Probably the key is ' + probableKey + '.');
        }else if(possibleKey != 'und'){
                alert('Possibly the key is ' + possibleKey + '.');
        }else{alert('Sorry; I am not sure what the key is...');}//end else if...
        
}//close guessKey
