﻿//Get Browser Information
var browser = $.browser.browser().toLowerCase();
var browserVersion = $.browser.version.string().toLowerCase();
//var isNETSCAPE = false, isIE = false;

//if (navigator.appName == "Netscape") {
//    isNETSCAPE = true
//}
//else {
//    isIE = true;
//}

function getElementWithId(eleId) {
    if (browser == 'firefox' || browser == 'safari' || browser == 'mozilla' || browser == 'opera') {
        return document.getElementById(eleId);
    }
    else if (browser == 'internet explorer') {
        return document.all[eleId];
    }
    else {
        return null;
    }
}

function screenCoords() {
    var screenW = 640, screenH = 480;
    if (parseInt(navigator.appVersion) > 3) {
        screenW = screen.width;
        screenH = screen.height;
    }
    else if ((browser == 'firefox' || browser == 'safari' || browser == 'mozilla' || browser == 'opera') && parseInt(navigator.appVersion) == 3 && navigator.javaEnabled()) {
        var jToolkit = java.awt.Toolkit.getDefaultToolkit();
        var jScreenSize = jToolkit.getScreenSize();
        screenW = jScreenSize.width;
        screenH = jScreenSize.height;
    }
    return [screenW, screenH];
}

function findPos(obj) {
    var curleft = curtop = curx = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curtop, curleft];
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num + '.' + cents);
}


function scrollTo(eleId) {
    $('html,body').animate({ scrollTop: $(eleId).offset().top }, { duration: 'slow', easing: 'swing' });
}

function xmlSelect(targetId, xmlPath, selectedVal) {
    var selectedValue;
    var $this = $(targetId);
    $.ajax({
        type: 'GET',
        url: xmlPath,
        dataType: 'xml',
        error: function(xhr, ajaxOptions, thrownError) { alert('Error: ' + xhr.status + ' ' + thrownError); },
        success: function(xml) {
            $this.find('option').remove();
            $this.append('<option selected="true" value="">[Select any]</option>');

            $(xml).find('item').each(function() {
                var text = $(this).find('text').text();
                var value = $(this).find('value').text();
                var selected = $(this).find('selected').text();
                $this.append('<option value="' + value + '">' + text + '</option>');
            });
            $this.val(selectedVal);
            $('#stateValue').html($this.val());
        }
    });
    return (selectedValue);
}

function sortDropDownListByText() {    
    // Loop for each select element on the page.    
    $("select").each(function() {        
        // Keep track of the selected option.        
        var selectedValue = $(this).val();        
        // Sort all the options by text. I could easily sort these by val.        
        $(this).html($("option", $(this)).sort(function(a, b) {return a.text == b.text ? 0 : a.text < b.text ? -1 : 1}));
        // Select one option.
        $(this).val(selectedValue);
    });
}


//Applies cascading behavior for the specified dropdowns 
function applyCascadingDropdown(sourceId, targetId) {
    var source = document.getElementById(sourceId);
    var target = document.getElementById(targetId);
    if (source && target) {
        source.onchange = function() {
            displayOptionItemsByClass(target, source.value);
        }
        displayOptionItemsByClass(target, source.value);
    }
}

//Displays a subset of a dropdown's options 
function displayOptionItemsByClass(selectElement, className) {
    if (!selectElement.backup) {
        selectElement.backup = selectElement.cloneNode(true);
    }
    var options = selectElement.getElementsByTagName("option");
    for (var i = 0, length = options.length; i < length; i++) {
        selectElement.removeChild(options[0]);
    }
    var options = selectElement.backup.getElementsByTagName("option");
    for (var i = 0, length = options.length; i < length; i++) {
        if (options[i].className == className) {
            selectElement.appendChild(options[i].cloneNode(true));
        }
    }
    var optn = document.createElement("option");
    optn.text = '[ Any ]';
    optn.value = '';
    optn.selected = true;
    selectElement.options.add(optn);
} 




