/* 
UWM Video Integration  - Begin Integration Logic  || optional || NEW
*/

var uwmBrowserDetect = {
    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"
                                                                },
                                                                {
                                                                    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"
                                                                },
                                                                {
                                                                    string: navigator.userAgent,
                                                                    subString: "iPad",
                                                                    identity: "iPad"
                                                                },
                                                                {
                                                                    string: navigator.userAgent,
                                                                    subString: "Android",
                                                                    identity: "Android"
                                                                },
                                                                {
                                                                    string: navigator.platform,
                                                                    subString: "Linux",
                                                                    identity: "Linux"
                                                                }
                                                ]

};



jQuery.noConflict();

function uwmCheckAvailability(vinArray) {
    var url = "http://www.dealervideos.com/integration.svc/availability?ctx=J3O8LHA&callback=?";
    var vin = vinArray;
    jQuery.getJSON(url, { "vin": vin }, uwmCheckAvailabilityCompleted);
};

function uwmCheckAvailabilityCompleted(data, textStatus) {
    if (!(data instanceof Array)) return false;
    for (i = 0; i < data.length; i++) {
        var vehicle = data[i];
        var ele = jQuery("#uwm_" + vehicle.vin);
        if (ele.length == 0)
            ele = jQuery("#uwm_video");
        if (ele.length > 0) {
            if (vehicle.available) {
                if (typeof (uwmVideoAvailableHandler) != "undefined")
                    uwmVideoAvailableHandler(vehicle, ele);
                else
                    uwmDefaultVideoAvailableHandler(vehicle, ele);
            }
            else {
                if (typeof (uwmVideoUnavailableHandler) != "undefined")
                    uwmVideoUnavailableHandler(vehicle, ele);
                else
                    uwmDefaultVideoUnavailableHandler(vehicle, ele);
            }
        }
    }
};

function uwmEmbedVideo(vehicle, ele) {
    //NEW ADDON
    if ((uwmBrowserDetect.OS == "iPad") || (uwmBrowserDetect.OS == "iPhone")) {
        if (vehicle != "null") {
            var url = "http://delivery.dealervideos.com/v1/content(" + vehicle.contentId + ")/youtubeid?callback=?";
            jQuery.getJSON(url, {}, function (data) {
                //var youTube = '<iframe title="YouTube video player" class="youtube-player" type="text/html" width="'+ele.attr("width")+'" height="'+(ele.attr("height")-20)+'" src="http://www.youtube.com/embed/'+data.YouTubeId+'?rel=0" frameborder="0" allowFullScreen></iframe>';
                var youTube = '<object width="' + uwmWidth + '" height="' + uwmHeight + '"><param name="movie" value="http://www.youtube.com/v/' + data.YouTubeId + '?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' + data.YouTubeId + '?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="' + uwmWidth + '" height="' + uwmHeight + '"></embed></object>';
                ele.append(youTube);
            });
        } else {

        }
        ele.empty();
    } else {
        var params = { "wmode": "transparent", "allowFullScreen": "true" };
        if (vehicle != "null") {
            swfobject.embedSWF("http://www.dealervideos.com/xspfPlayer/xspfPlayer.swf?ctx=" + vehicle.ctx + "&vid=" + vehicle.contentId, ele.attr("id"), uwmWidth, uwmHeight, "9.0.0", null, null, params)
        } else {
            swfobject.embedSWF("null", ele.attr("id"), 10, 10, "9.0.0", null, null, params)
        }
        ele.empty();
    }
}




function uwmDefaultGetVinArray() {
    var vinArray = new Array();
    jQuery("[id^='uwm_']").each(function () {
        var vin = jQuery(this).attr("id").substring(4);
        vinArray[vinArray.length] = vin;
    });
    return vinArray;
}

function uwmDefaultVideoAvailableHandler(vehicle, ele) {
    uwmEmbedVideo(vehicle, ele);
}

function uwmDefaultVideoUnavailableHandler(vehicle, ele) {
    ele.text("Video Unavailable");
    ele.hide();
}

function uwmDialogVideo(vehicle, ele) {
    if (!vehicle.available)
    { ele.hide(); return; }

    ele.click(function () {
        uwmEmbedVideo(vehicle, jQuery("#uwmDialog > *"));
        var d = jQuery("#uwmDialog");
        d.dialog("open");
        d.bind('dialogbeforeclose', function (event, ui) {
            uwmEmbedVideo("null", jQuery("#uwmDialog > *"));
        });
    });
    ele.show();
}

function uwmExternalPopUp(vehicle, ele) {
    if (!vehicle.available)
    { ele.hide(); return; }

    ele.click(function () {
        var win = window.open("", "uwm_video", "width=" + uwmWidth + ",height=" + uwmHeight + ",resizable=no,scrollbars=no,status=no");
        win.focus()

        var flashObject = "<html><head></head><body marginwidth=\"0\" marginheight=\"0\" leftmargin=\"0\" topmargin=\"0\"><object width=\"" + uwmWidth + "\" height=\"" + uwmHeight + "\">" +
                                "<param name=\"movie\" value=\"http://www.dealervideos.com/xspfPlayer/xspfPlayer.swf?ctx=" + vehicle.ctx + "&vid=" + vehicle.contentId + "\"></param>" +
                                "<param name=\"wmode\" value=\"transparent\"></param><param name=\"allowFullScreen\" value=\"true\">" +
                                "<param name=\"allowScriptAccess\" value=\"always\"><param name=\"swfLiveconnect\" value=\"true\" >" +
                                "<embed src=\"http://www.dealervideos.com/xspfPlayer/xspfPlayer.swf?ctx=" + vehicle.ctx + "&vid=" + vehicle.contentId + "\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\"  wmode=\"transparent\" swfLiveconnect=\"true\" allowFullScreen=\"true\" width=\"" + uwmWidth + "\" height=\"" + uwmHeight + "\"></embed>" +
                                "</object></body></html>";

        win.document.open();


        //NEW ADDON
        if ((uwmBrowserDetect.OS == "iPad") || (uwmBrowserDetect.OS == "iPhone")) {
            var url = "http://delivery.dealervideos.com/v1/content(" + vehicle.contentId + ")/youtubeid?callback=?";
            jQuery.getJSON(url, {},
                                                                  function (data) {
                                                                      //var youTube = '<iframe title="YouTube video player" class="youtube-player" type="text/html" width="'+ele.attr("width")+'" height="'+ele.attr("height")+'" src="http://www.youtube.com/embed/'+data.YouTubeId+'?rel=0" frameborder="0" allowFullScreen></iframe>';
                                                                      var youTube = '<object width="100%" height="100%"><param name="movie" value="http://www.youtube.com/v/' + data.YouTubeId + '?fs=1&amp;hl=en_US&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/' + data.YouTubeId + '?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="100%" height="100%"></embed></object>';

                                                                      win.document.write("<html><head></head><body marginwidth=\"0\" marginheight=\"0\" leftmargin=\"0\" topmargin=\"0\">" + youTube + "</body></html>");
                                                                      win.document.close();
                                                                  });
        } else {
            win.document.write(flashObject);
            win.document.close();

        }



    });
    ele.show();
}

var uwmWidth = null;
var uwmHeight = null;

jQuery(document).ready(function () {
    if (uwmWidth == null) { uwmWidth = 640; }
    if (uwmHeight == null) { uwmHeight = 480; }
    // if(uwmWidth < 320) { uwmWidth = 320; }
    // if(uwmHeight < 240) { uwmHeight = 240; }

    uwmBrowserDetect.init(); //NEW ADDON

    jQuery("body").append("<div id=\"uwmDialog\" title=\"Video Player\"><span id=\"uwmSwfObject\"/></div>");
    var d = jQuery("#uwmDialog");
    d.addClass("uwmDialogClass").dialog({ autoOpen: false, draggable: true, width: uwmWidth + 30, height: uwmHeight + 55, show: "slow", modal: true, hide: "puff" });
    if (typeof (uwmInit) != "undefined")
        vinArray = uwmInit();
    var vinArray;
    if (typeof (uwmGetVinArray) != "undefined")
        vinArray = uwmGetVinArray();
    else
        vinArray = uwmDefaultGetVinArray();
    uwmCheckAvailability(vinArray);
});
