// Browser Detect  v2.1.6 - (slightly modified for Prototype consistency by Phosworks AB 060418)
// documentation: http://www.dithered.com/javascript/browser_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
var BrowserDetect = Class.create();
BrowserDetect.prototype = {
	initialize: function() {
		var ua = navigator.userAgent.toLowerCase(); 
		
		// browser engine name
		this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
		this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);
		
		// browser name
		this.isKonqueror   = (ua.indexOf('konqueror') != -1); 
		this.isSafari      = (ua.indexOf('safari') != - 1);
		this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
		this.isOpera       = (ua.indexOf('opera') != -1); 
		this.isIcab        = (ua.indexOf('icab') != -1); 
		this.isAol         = (ua.indexOf('aol') != -1); 
		this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); 
		this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
		this.isFirebird    = (ua.indexOf('firebird/') != -1);
		this.isFirefox	   = (ua.indexOf('firefox/') != -1);
		this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
		
		// spoofing and compatible browsers
		this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
		this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
		
		// rendering engine versions
		this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
		this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
		this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );
		
		// browser version
		this.versionMinor = parseFloat(navigator.appVersion); 
		
		// correct version number
		if (this.isGecko && !this.isMozilla) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
		}
		else if (this.isMozilla) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
		}
		else if (this.isIE && this.versionMinor >= 4) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
		}
		else if (this.isKonqueror) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
		}
		else if (this.isSafari) {
		  this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
		}
		else if (this.isOmniweb) {
		  this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
		}
		else if (this.isOpera) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
		}
		else if (this.isIcab) {
		  this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
		}
		
		this.versionMajor = parseInt(this.versionMinor); 
		
		// dom support
		this.isDOM1 = (document.getElementById);
		this.isDOM2Event = (document.addEventListener && document.removeEventListener);
		
		// css compatibility mode
		this.mode = document.compatMode ? document.compatMode : 'BackCompat';
		
		// platform
		this.isWin    = (ua.indexOf('win') != -1);
		this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
		this.isMac    = (ua.indexOf('mac') != -1);
		this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
		this.isLinux  = (ua.indexOf('linux') != -1);
		
		// specific browser shortcuts
		this.isNS4x = (this.isNS && this.versionMajor == 4);
		this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
		this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
		this.isNS4up = (this.isNS && this.versionMinor >= 4);
		this.isNS6x = (this.isNS && this.versionMajor == 6);
		this.isNS6up = (this.isNS && this.versionMajor >= 6);
		this.isNS7x = (this.isNS && this.versionMajor == 7);
		this.isNS7up = (this.isNS && this.versionMajor >= 7);
		
		this.isIE4x = (this.isIE && this.versionMajor == 4);
		this.isIE4up = (this.isIE && this.versionMajor >= 4);
		this.isIE5x = (this.isIE && this.versionMajor == 5);
		this.isIE55 = (this.isIE && this.versionMinor == 5.5);
		this.isIE5up = (this.isIE && this.versionMajor >= 5);
		this.isIE6x = (this.isIE && this.versionMajor == 6);
		this.isIE6up = (this.isIE && this.versionMajor >= 6);
		
		this.isIE4xMac = (this.isIE4x && this.isMac);	
	}
}
var Browser = new BrowserDetect();

var IEFixer = {
	fixMenu: function() {
	    var globalMenu = p$('intromenu');
	    if ( globalMenu && document.getElementsByTagName ) {
	        var listItems = globalMenu.getElementsByTagName('li');
            
            var count = listItems.length; 
            for(i=0; i<count; i++) {
                if ( i>0 ) {
					var node = document.createElement('span');
					node.className += "sep";
					var textn = document.createTextNode('-');
					node.appendChild(textn);
					listItems[i].insertBefore(node, listItems[i].firstChild);
				}
            }
	    }
	}
}
if ( Browser.isIE ) Event.observe(window, 'load', IEFixer.fixMenu.bind(IEFixer), false);

var FlashRenderer = {        
    RenderGenericFlash: function(strSrc, strWidth, strHeight, transparent) {
        AC_FL_RunContent('codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width',strWidth,'height',strHeight,'align','middle','src',strSrc,'quality','highest','bgcolor','#ffffff','allowscriptaccess','sameDomain','pluginspage','http://www.macromedia.com/go/getflashplayer','movie', strSrc, 'wmode', transparent?'transparent':'window' );    
    },
    
    RenderGenericFlash2: function(strSrc, strWidth, strHeight, bgcolor, transparent) {
        AC_FL_RunContent('codebase','http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width',strWidth,'height',strHeight,'align','middle','src',strSrc,'quality','highest','bgcolor',bgcolor,'allowscriptaccess','sameDomain','pluginspage','http://www.macromedia.com/go/getflashplayer','movie', strSrc, 'wmode', transparent?'transparent':'window' );    
    }
}

var PopupManager = {
	OpenScreenViewer: function(prod_id, cur) {
		window.open('ProductsScreenshotsViewer.aspx?id='+prod_id+'&cur='+cur,'screenViwer','width=800,height=600,scrollbars=no,toolbar=no,resizable=no,status=no');
	},
	
	OpenScreenViewer2: function(prod_id, cur, plat_id, pubdate) {
		window.open('ProductsScreenshotsViewer.aspx?id='+prod_id+'&cur='+cur+'&plat_id='+plat_id+'&pubdate='+pubdate,'screenViwer','width=800,height=600,scrollbars=no,toolbar=no,resizable=no,status=no');
	},
	
	ShowPopup: function(id, width, height) {
	    window.open('ViewPopup.aspx?id='+id, 'mainPopup', 'width='+width+',height='+height+',toolbar=0,resizable=0,scrollbars=1');
	},
	
	GotoURL: function(id, url, target) {
		switch ( target )
		{
		    case 1:
			    document.location.href = 'Popup.Clicktrace.aspx?id=' + id + '&url=' + url;
			    window.close();
			    return false;
			    break;
		    case 2:
			    window.open('Popup.Clicktrace.aspx?id=' + id + '&url=' + url);
			    window.close();
			    return false;
			    break;
		    case 3:
			    opener.document.location.href = 'Popup.Clicktrace.aspx?id=' + id + '&url=' + url;
			    window.close();
			    return false;
			    break;
        }
        return true;
    },
    
    ShowUA: function(url, ev) {
        if ( !ev ) ev = window.event;
        ev.cancelBubble = true;
        if ( ev.stopPropagation ) ev.stopPropagation();
        window.open(url);
    }
}

var FormHandler = new Object();

FormHandler = {
    redirect: function(element) {
        if ( element.options[element.options.selectedIndex].value.indexOf('|')>0 )
        {
            var components = element.options[element.options.selectedIndex].value.split('|');
			if ( components[1]=="_blank" )
				window.open(components[0]);
			else
				document.location.href = components[0];
		}
        else
            document.location.href=element.options[element.options.selectedIndex].value;
    },
    
    validateCheckboxlist: function(source, arguments) {
        arguments.IsValid = false;
        var controltovalidate = p$(source.controltovalidate)
        if ( controltovalidate ) {
            var cboxes = controltovalidate.getElementsByTagName('input');
            for (i=0; i<cboxes.length; i++) {
                if ( cboxes[i].checked ) {
                    arguments.IsValid = true; 
                }
            }
        }
    },
    
    validateCheckbox: function(source, arguments) {
        arguments.IsValid = false;
        var controltovalidate = p$(source.controltovalidate)
        if ( controltovalidate ) {
            if ( controltovalidate.checked )
                arguments.IsValid = true;    
        }
    }    
}

/*
createElement function found at http://simon.incutio.com/archive/2003/06/15/javascriptWithXML
*/
function createElement(element) {
	if (typeof document.createElementNS != 'undefined') {
		return document.createElementNS('http://www.w3.org/1999/xhtml', element);
	}
	if (typeof document.createElement != 'undefined') {
		return document.createElement(element);
	}
	return false;
}

function openWin(theURL,winName,features) {
	win = window.open(theURL,winName,features);
	win.focus();
}