function querystring_calc() {
    var q = window.location.search.substr(1);
        
    if (q.length > 1) {
        var spl = q.split("&");
        
        for (var x = 0; x < spl.length; x++) {
            var spl2 = spl[x].split("=");

            if (spl2.length == 2) {

                if (spl2[0].length > 0 && spl2[1].length > 0) {
                    
                    if (spl2[0].toLowerCase() == "mult_val") {
                        document.getElementById('mult_val').value = spl2[1];
                    } else {
                        document.getElementById(spl2[0].toLowerCase()).selectedIndex = document.getElementById(spl2[1].toLowerCase()).index;
                    }
                }
            }
        }
    }
}

function linkToPage() {
var pathName = window.location.pathname;
        
    if (pathName.substr(0,11) == "application") {
        pathName = "/film_calc_mobile.xml";
    }
    
    var page_url= "http://www.digitalrebellion.com" + pathName;
    page_url += "?format=" + document.getElementById('format').options[document.getElementById('format').selectedIndex].id;
    page_url += "&frame_rate=" + document.getElementById('frame_rate').options[document.getElementById('frame_rate').selectedIndex].id;
    page_url += "&mult_val=" + document.getElementById('mult_val').value;
    page_url += "&mult_type=" + document.getElementById('mult_type').options[document.getElementById('mult_type').selectedIndex].id;
    
    window.location.href = page_url;
}

function calculate(format, frame_rate, mult_val, mult_type) {
    var ftps; // Feet per second @ 24fps
    
    switch (format) {
        case 'ssuper8':
                    ftps = 0.3;
                    break;
        case 's16':
                    ftps = 0.6;
                    break;
        case 's35':
                    ftps = 1.5;
                    break;
        case 's35-2':
                    ftps = 0.75;
                    break;
        case 's35-3':
                    ftps = 1.125;
                    break;
                
        case 's65':
                    ftps = 1.875;
                    break;
    }
    
    if (frame_rate.substr(0,1) == 'f') frame_rate = frame_rate.substr(1);
    
    // Work out ftps for framerate
    if (frame_rate != 24) {
        // Work out % diff
        if (frame_rate < 24) {
            diff = (24 - frame_rate) / 24;
            ftps = ftps - (ftps * diff);
        } else {
            diff = (frame_rate - 24) / 24;
            ftps = ftps + (ftps * diff);
        }
    }
    
    // Convert from meters to feet
    if (mult_type == 'meters') {
        mult_val = mult_val * 3.28083989501312;
        mult_type = 'feet';
    }
    
        if (mult_type == 'feet') { // Time from feet
            var vFinal = mult_val / ftps;
            
            // Convert time
            getSec = Math.floor(vFinal)%60;
            getHr = Math.floor((vFinal / 60) / 60);
            getMin = Math.floor(vFinal / 60)%60;

            if (getSec < 10) getSec = "0" + getSec;
            if (getMin < 10) getMin = "0" + getMin;
            if (getHr < 10) getHr = "0" + getHr;

            if (getSec == 0) getSec = "00";
            if (getMin == 0) getMin = "00";
            if (getHr == 0) getHr = "00";

            document.getElementById('output').innerHTML = "Total time: " + getHr + ":" + getMin + ":" + getSec;
        } else if (mult_type == 'frames') { // Frames to feet
            vFinal = (mult_val / frame_rate) * ftps;
            
            document.getElementById('output').innerHTML = "Total: " + formatNum(Math.round(vFinal * 100) / 100) + " feet";
            document.getElementById('output').innerHTML += "<br /><font size=\"2\">1000ft rolls: " + formatNum((Math.round(vFinal * 100) / 100) / 1000) + "</font><br /><font size=\"2\">400ft rolls: " + formatNum((Math.round(vFinal * 100) / 100) / 400) + "</font>";
        } else {
            if (mult_type == 'hours') {
                var vFinal = ftps * (mult_val * 60 * 60);
            } else if (mult_type == 'minutes') {
                var vFinal = ftps * (mult_val * 60);
            } else {
                var vFinal = ftps * mult_val;
            }
            
            document.getElementById('output').innerHTML = "Total: " + formatNum(Math.round(vFinal * 100) / 100) + " feet";
            document.getElementById('output').innerHTML += "<br /><font size=\"2\">1000ft rolls: " + formatNum((Math.round(vFinal * 100) / 100) / 1000) + "</font><br /><font size=\"2\">400ft rolls: " + formatNum((Math.round(vFinal * 100) / 100) / 400) + "</font>";
        }
}

function formatNum(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function recalculate() {
    calculate(document.getElementById('format').options[document.getElementById('format').selectedIndex].id, document.getElementById('frame_rate').options[document.getElementById('frame_rate').selectedIndex].id, document.getElementById('mult_val').value, document.getElementById('mult_type').options[document.getElementById('mult_type').selectedIndex].id);
}

function IsNumeric(sText)
{
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}
   
function validate_text() {
    var gettext = document.getElementById('mult_val').value;
    
    if (IsNumeric(gettext) && gettext > 0) {
        resetTextBox();
        recalculate();
    } else {
        document.getElementById('mult_val').className="textbox_red";
    }
}

function resetTextBox() {
    document.getElementById('mult_val').className="textbox_black";
}