CMW = window.CMW || {};
CMW.util = function() {
	//private
	var YuD = YAHOO.util.Dom;
	//public
	var my = {
		popupWindow : function(src){
			function raw_popup(url, target, features) {
				var theWindow = window.open(url, target, features);
				theWindow.focus();
				return theWindow;
			}
			var features = "width=550,height=500,scrollbars=NO,toolbar=NO,resizable=YES";
			var	tar = "_blank";
			return raw_popup(src, tar, features);
		},
		/* parseUri JS v0.1.1, by Steven Levithan <http://stevenlevithan.com>*/
		parseUri : function(sourceUri){
		 	var uriPartNames = ["source","protocol","authority","domain","port","path","directoryPath","fileName","query","anchor"], 
		 	uriParts = new RegExp("^(?:([^:/?#.]+):)?(?://)?(([^:/?#]*)(?::(\\d*))?)((/(?:[^?#](?![^?#/]*\\.[^?#/.]+(?:[\\?#]|$)))*/?)?([^?#/]*))?(?:\\?([^#]*))?(?:#(.*))?").exec(sourceUri), 
		 	uri = {}; 
		 	for(var i = 0; i < 10; i++){ 
		 		uri[uriPartNames[i]] = (uriParts[i] ? uriParts[i] : "");
		 	} 
		 	if(uri.directoryPath.length > 0){ 
		 		uri.directoryPath = uri.directoryPath.replace(/\/?$/, "/"); 
		 	} 
		 	return uri;
		}
	};
	return my;
}();


CMW.ui = function () {
	//private
	var YuD = YAHOO.util.Dom,
		YuE = YAHOO.util.Event;
	
	//public
	var my = {
		init : function () {
			var uiContent = YuD.get('ui-content');
			YuE.on(uiContent, 'click', function(ev){
				var tar = YuE.getTarget(ev);
				if(YuD.hasClass(tar, 'printLk')){
					window.print();
					YuE.preventDefault(ev);
				}
			});
		},
		convertLink : function(o,tar){
			if(tar.tagName == 'INPUT' || tar.tagName == 'BUTTON' || tar.tagName == 'SELECT'){
				var form = tar.form; //IE?
				YAHOO.util.Connect.setForm(form);
				var link = CMW.util.parseUri(form.action);
				//TODO: check if this works
			} else {
				var link = CMW.util.parseUri(tar.href);
			}
			if(link) {
				var params = link.query;
				var href = o.getAttribute('urn') + '&' + params;
				return href + '&rendertype=enhanced';
			}
		}
	};
	return my;
}();

CMW.ui.Quantity = function () {
	var YuD = YAHOO.util.Dom,
		YuE = YAHOO.util.Event;
	var browserName=navigator.appName; 
		
	var my = {
		init : function() {
			my.initFields();
		},
		
		initFields : function() {
			var quantities = YuD.getElementsByClassName('i-quantity', 'input', '', function() {	
				YuE.on(this, 'keypress', function(ev){
					my.checkNumeric(ev);
				});
			});
		},
		
		checkNumeric : function(ev) {
			var key=0;
			if (browserName=="Microsoft Internet Explorer")
 			{
			     key = ev.keyCode;  // Works for IE but not Firefox
			} else {
				key = ev.charCode;  // Works for Firefox but not IE
			}
			// Allow backspace(8) and tab(9) always
			if (key == 9 || key == 8 ) {
				return;
			}			
			// allow only 0-9
			if (key == 0 || (key > 47 && key < 58)){
				var tar = YuE.getTarget(ev);
				
				// if the value is "0", remove it
				if ((key != 0) && (tar.value == "0"))
					tar.value = "";
			}
			else
				YuE.stopEvent(ev);				
		}			
	};
	return my;
}();

YAHOO.util.Event.onDOMReady(CMW.ui.init, CMW.ui);
