﻿/* **********
 * SearchBox
 * **********/
YAHOO.namespace('widget.SearchBox');
(function() {
    var Event = YAHOO.util.Event,
		Dom = YAHOO.util.Dom;
		
    YAHOO.widget.SearchBox = function(txtEl, btnEl, framed) {
        if(!txtEl || !btnEl){ return null; }
        this.textbox = txtEl;
        this.button = btnEl;
        this.defaultText = null;
        this.searchUrl = null;
        this.framed = framed || false;
        Event.onDOMReady(this._onloadTasks, this, true);
    };
    
    YAHOO.widget.SearchBox.prototype._onloadTasks = function(e, obj) {
        // Setup textbox
        this.textbox = Dom.get(this.textbox);
        if(this.textbox!=null){
        this.defaultText = this.textbox.value;
        Event.addListener(this.textbox, "keypress", this.validateKeyPress, this, true);
        Event.addListener(this.textbox, "focus", this.handleOnFocus, this, true);
        Event.addListener(this.textbox, "blur", this.handleOnBlur, this, true);
        }
        
        // Setup button
        this.button = Dom.get(this.button);
        if(this.button!=null){
        this.searchUrl = this.button.href;
        Event.addListener(this.button, "click", this.handleButtonClick, this, true);
        }
    };
    
    YAHOO.widget.SearchBox.prototype.validateKeyPress = function(e) {
        var key = Event.getCharCode(e);
        if(key === 13) {
            Event.stopEvent(e);
            this.goSearch();
        }
    };
    
    YAHOO.widget.SearchBox.prototype.handleOnFocus = function(e) {
        if(this.textbox.value === this.defaultText) {
            this.textbox.value = '';
            Dom.setStyle(this.textbox, "color", "#000000");
        }
    };
    
    YAHOO.widget.SearchBox.prototype.handleOnBlur = function(e) {
        if(this.textbox.value === '') {
            this.textbox.value = this.defaultText;
            Dom.setStyle(this.textbox, "color", "#919191");
        }
    };
    
    YAHOO.widget.SearchBox.prototype.handleButtonClick = function(e) {
        Event.stopEvent(e);
        this.goSearch();
    };
    
    YAHOO.widget.SearchBox.prototype.goSearch = function() {
        if(this.textbox.value === '' || this.textbox.value === this.defaultText) { return; }
        var targetWindow = this.framed ? parent.location : location;
        targetWindow.href = this.searchUrl + this.textbox.value;
    };
})();


/* **********
 * FlashDetect
 * **********/

YAHOO.util.FlashDetect = new function(){
	var self = this;
	self.installed = false;
	self.major = -1;
	self.minor = -1;
	self.revision = -1;
	self.revisionStr = "";
	self.activeXVersion = "";
	var activeXDetectRules = [
		{
			"name":"ShockwaveFlash.ShockwaveFlash.7",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash.6",
			"version":function(obj){
				var version = "6,0,21";
				try{
					obj.AllowScriptAccess = "always";
					version = getActiveXVersion(obj);
				}catch(err){}
				return version;
			}
		},
		{
			"name":"ShockwaveFlash.ShockwaveFlash",
			"version":function(obj){
				return getActiveXVersion(obj);
			}
		}
	];
	var getActiveXVersion = function(activeXObj){
		var version = -1;
		try{
			version = activeXObj.GetVariable("$version");
		}catch(err){}
		return version;
	};
	var getActiveXObject = function(name){
		var obj = -1;
		try{
			obj = new ActiveXObject(name);
		}catch(err){}
		return obj;
	};
	var parseActiveXVersion = function(str){
		var versionArray = str.split(",");//replace with regex
		return {
			"major":parseInt(versionArray[0].split(" ")[1], 10),
			"minor":parseInt(versionArray[1], 10),
			"revision":parseInt(versionArray[2], 10),
			"revisionStr":versionArray[2]
		};
	};
	var parseRevisionStrToInt = function(str){
		return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
	};
	self.majorAtLeast = function(version){
		return self.major >= version;
	};
	self.FlashDetect = function(){
		if(navigator.plugins && navigator.plugins.length>0){
			var type = 'application/x-shockwave-flash';
			var mimeTypes = navigator.mimeTypes;
			if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
				var desc = mimeTypes[type].enabledPlugin.description;
				var descParts = desc.split(' ');//replace with regex
				var majorMinor = descParts[2].split('.');
				self.major = parseInt(majorMinor[0], 10);
				self.minor = parseInt(majorMinor[1], 10); 
				self.revisionStr = descParts[3];
				self.revision = parseRevisionStrToInt(self.revisionStr);
				self.installed = true;
			}
		}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
			var version = -1;
			for(var i=0; i<activeXDetectRules.length && version==-1; i++){
				var obj = getActiveXObject(activeXDetectRules[i].name);
				if(typeof obj == "object"){
					self.installed = true;
					version = activeXDetectRules[i].version(obj);
					if(version!=-1){
						var versionObj = parseActiveXVersion(version);
						self.major = versionObj.major;
						self.minor = versionObj.minor; 
						self.revision = versionObj.revision;
						self.revisionStr = versionObj.revisionStr;
						self.activeXVersion = version;
					}
				}
			}
		}
	}();
};
YAHOO.util.FlashDetect.release = "1.0.2";




/*
 **************************************************************
 * TODO - REMOVE WHEN PERMANENT FIX CAN BE APPLIED - 20080102 *
 **************************************************************
 */
// Call getSearch when pressing enter in textbox
function validateKeyPress(e, name, inFrame){
	var key;
	var keychar;
		
	if(window.event || !e.which){ // IE
		key = e.keyCode; // for IE, same as window.event.keyCode
	}else if(e){ // netscape
		key = e.which;
	}else{
		return true;
	}
	if(key == 13){
		goSearch(name, inFrame)
		return false;
	}
	return true;
}
function goSearch(name, inFrame){
	var terms = document.getElementById(name).value; //escape(document.getElementById(name).value);
	if(terms == ""){
		return;
	}
	if(inFrame) {
		parent.location.href = "/search/default.aspx?Ntt=" + terms;
	} else {
		location.href =  "/search/default.aspx?Ntt=" + terms;
	}
}

//********************************************************************
//     Custom Watermark code
//********************************************************************
//When the search button is clicked, we will only search if the box has text besides the default watermark text.
function IsOkToSearch(defaultText, textboxId)
{
    var searchBox = document.getElementById(textboxId);
    return (searchBox.value != defaultText);
}
function DoSearchBoxFocus(defaultText, textBoxId)
{
    var searchBox = document.getElementById(textBoxId);
    if(searchBox.value == defaultText) {
        searchBox.value = "";
    }
    searchBox.style.color = "#000000";
}
function DoSearchBoxBlur(defaultText, textBoxId)
{
    var searchBox = document.getElementById(textBoxId);
    if (searchBox.value.length == 0) {
        searchBox.value = defaultText;
    }
    if (searchBox.value == defaultText) {
        searchBox.style.color = "#919191";
    }
}