﻿// Common

jQuery.preloadImages = function() {
    var cache = [];
    var args_len = arguments.length;
    for (var i = args_len; i--; ) {
        var cacheImage = document.createElement('img');
        cacheImage.src = arguments[i];
        cache.push(cacheImage);
    }
}

// Common Document Ready
$(document).ready(function() {
    $('.adtip').tooltip({ fade: 500, showURL: false, delay: 20, track: true });
    if ($('[id$="hfAdReload"]').val().length > 0)
    { setIntervalX(function() { adRotate(); }, 120 * 1000, 5); }
    $.watermark.options.className = 'watermarked';
});

function setIntervalX(callback, delay, repetitions) {
    var x = 0;
    var intervalID = window.setInterval(function() {

        callback();

        if (++x === repetitions) {
            window.clearInterval(intervalID);
        }
    }, delay);
}

function adRotate() {
    VeloBase2.CommonServices.AdRotate(adRotateHandler);
}

function adRotateHandler(result) {
    $("[id$='Velo1SponsorAds']").replaceWith(result);
    
//    var nAds = JSON.parse(result);
//    if (nAds.Ad1.length > 0) {
//        $('[id$="adcell1"]').empty().append(nAds.Ad1);
//    }
//    if (nAds.Ad2.length > 0) {
//        $('[id$="adcell2"]').empty().append(nAds.Ad2);
//    }
}

// VeloBase Ad Click
function VeloAd(id) //, target) 
{
    VeloBase2.CommonServices.AdClick(id);
    //window.open(target, 'adwindow', 'toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes, resizable=yes');
}

// Watch Item
function addWatch(lnk) {
    var txt = $('#watchTxt').html();
    var Delete = false;
    var itemID = $('#' + prefixPgControl('hfID')).val();
    var itemEnum = $('#' + prefixPgControl('hfEnum')).val();
    //var args = "add";
    if (txt == 'Watch')
    { $('#watchTxt').html('Remove Watch'); }
    else { $('#watchTxt').html('Watch'); Delete = true; }

    VeloBase2.CommonServices.UserWatchItem(itemID, itemEnum, Delete, watchItemCallback);
}

function watchItemCallback(result) {
    if (result.length > 0) { $('#watchTxt').html(result); }
}

// Submission History Scripts
var histryDialogSetup = false;
var histryDataSet = false;

function openHistory() {
    if (!histryDialogSetup) {
        $('#hstryDialog').dialog({ autoOpen: false, resizable: false, title: 'Update History' });
        $('#hstryDialog').dialog('option', 'buttons', { "Close": function() { $('#hstryDialog').dialog('close'); } });
        $('#hstryDialog').dialog('option', 'height', 350);
        $('#hstryDialog').dialog('option', 'width', 485);
        histryDialogSetup = true;
    }

    if (!histryDataSet) {
        var itemID = $('#' + prefixPgControl('hfID')).val();
        var itemEnum = $('#' + prefixPgControl('hfEnum')).val();
        VeloBase2.CommonServices.SubmissionHistory(itemID, itemEnum, historyDialogCallback);
    }

    $('#hstryDialog').dialog('open');
}

function historyDialogCallback(result) {
    if (result.length > 0) {
        $('#hstryContent').html(result);
        histryDataSet = true; 
    }
}

function SetDescription(obj) {
    var descrpt = DescriptionArray(obj.selectedIndex);
    $('#catDescription').html(descrpt);
}

function getPageCallbackObj() {
    return JSON.parse($("[id$='hfCallbackStruct']").val());
}



/// ******************* BROWSER DETECT **********************************

var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
		{
		    string: navigator.userAgent,
		    subString: "Chrome",
		    identity: "Chrome"
		},
		{ string: navigator.userAgent,
		    subString: "OmniWeb",
		    versionSearch: "OmniWeb/",
		    identity: "OmniWeb"
		},
		{
		    string: navigator.vendor,
		    subString: "Apple",
		    identity: "Safari",
		    versionSearch: "Version"
		},
		{
		    prop: window.opera,
		    identity: "Opera",
		    versionSearch: "Version"
		},
		{
		    string: navigator.vendor,
		    subString: "iCab",
		    identity: "iCab"
		},
		{
		    string: navigator.vendor,
		    subString: "KDE",
		    identity: "Konqueror"
		},
		{
		    string: navigator.userAgent,
		    subString: "Firefox",
		    identity: "Firefox"
		},
		{
		    string: navigator.vendor,
		    subString: "Camino",
		    identity: "Camino"
		},
		{		// for newer Netscapes (6+)
		    string: navigator.userAgent,
		    subString: "Netscape",
		    identity: "Netscape"
		},
		{
		    string: navigator.userAgent,
		    subString: "MSIE",
		    identity: "Explorer",
		    versionSearch: "MSIE"
		},
		{
		    string: navigator.userAgent,
		    subString: "Gecko",
		    identity: "Mozilla",
		    versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
		    string: navigator.userAgent,
		    subString: "Mozilla",
		    identity: "Netscape",
		    versionSearch: "Mozilla"
		}
	],
    dataOS: [
		{
		    string: navigator.platform,
		    subString: "Win",
		    identity: "Windows"
		},
		{
		    string: navigator.platform,
		    subString: "Mac",
		    identity: "Mac"
		},
		{
		    string: navigator.userAgent,
		    subString: "iPhone",
		    identity: "iPhone/iPod"
		},
		{
		    string: navigator.platform,
		    subString: "Linux",
		    identity: "Linux"
		}
	]

};
BrowserDetect.init();
