// JavaScript Document
var msChanged = function(o) {
	if(this.checked) $(this).parent().addClass('msSelected');
	else $(this).parent().removeClass('msSelected');
}

var numericCheck = function(str, dec, bNeg) { // auto-correct input - force numeric data based on params. 
	var cDec = '.'; // decimal point symbol 
	var bDec = false;
	var val = ""; 
	var strf = "";
	var neg = "";
	var i = 0; 

	if(str=="") return '';
	if(bNeg && str.charAt(i)=='-') { neg = '-'; i++; }
	
	for (i; i < str.length; i++) {
		val = str.charAt(i);
		if(val==cDec) {
			if(!bDec) {
				strf += val; 
				bDec = true;
			}
		}
		else if (val >= '0' && val <= '9') strf += val; 
	}
	if(strf=="") return '';
	strf = neg + strf;
	if(dec==9) return parseFloat(strf);
	else return parseFloat(strf).toFixed(dec); 
}

var validNumeric = function(e,o) {
	var fld = jQuery(this);
	if(fld.hasClass('number')) fld.val(numericCheck(fld.val(),9,fld.hasClass('neg')));
	else if(fld.hasClass('integer')) fld.val(numericCheck(fld.val(),0,fld.hasClass('neg')));
	else if(fld.hasClass('fix1')) fld.val(numericCheck(fld.val(),1,fld.hasClass('neg')));
	else if(fld.hasClass('dollar')) fld.val(numericCheck(fld.val(),2,fld.hasClass('neg')));
	else if(fld.hasClass('fix3')) fld.val(numericCheck(fld.val(),3,fld.hasClass('neg')));
}

function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

var arrayHas = function(v,ar) {
	var theTest = function(a){
		var o = {};
		for(var i=0;i<a.length;i++) { o[a[i]]=''; }
		return o;
	}
	return (v in theTest(ar));
}

var globalReadyFired = false;
jQuery(document).ready(function(){
	if(!globalReadyFired) {
		globalReadyFired=true;
		var submitter = function(event) {
			if(!jQuery(event.target).attr('disabled')) {
				jQuery(event.target).parents("form")[0].submit();
			}
			jQuery(event.target).attr('disabled','disabled');
		}
		jQuery("input[type=submit]").each(function(index,el){
			if(!jQuery(el).hasClass('ignore')) {
				var btnClass = "save";
				if(el.className.length) btnClass = el.className;
				jQuery(el).replaceWith(jQuery("<span/>").addClass("btn").append(jQuery("<span/>").addClass("first-child").append( jQuery("<button type='button'/>").attr("tabindex","0").html(jQuery(el).attr("value")).addClass(btnClass).click(submitter) )));
			}
		});
		jQuery("input[type=button]").each(function(index,el){
			var btnClass = "noIcon";
			if(el.className.length) btnClass = el.className;
			jQuery(el).replaceWith(jQuery("<span/>").addClass("btn").append(jQuery("<span/>").addClass("first-child").append( jQuery("<button type='button'/>").html(jQuery(el).attr("value")).addClass(btnClass).click(el.onclick) )));
		});
		jQuery("a.lnkBtn").each(function(index,el){
			var isSplit=false;
			jQuery(el).removeClass("lnkBtn");
			if(jQuery(el).hasClass("split")) {
				jQuery(el).removeClass("split");
				isSplit=true;
			}
			if(!el.className.length) jQuery(el).addClass("noIcon");
			var replacer = jQuery("<span/>").addClass("lnkBtn");
			if(isSplit) {
				var baseID = el.id;
				var btnID = baseID + "_btn";
				var menuID = baseID + "_menu";
				replacer.attr("id",btnID);
				var splitterLink = jQuery("<a/>").addClass("splitter");
				var hideTimer;
				splitterLink.click(function(e,o){
					var theMenu = jQuery("#" + menuID);
					var mousedOut = function(e) {hideTimer = setTimeout(hideIt,250);}
					var mousedOver = function(e) {clearTimeout(hideTimer);}
					var showIt = function() {
						theMenu.css("top",replacer.position().top + replacer.height() + 2);
						theMenu.css("left",replacer.position().left + 3);
						theMenu.css("visibility","visible");
						theMenu.bind('mouseout',mousedOut);
						theMenu.bind('mouseover',mousedOver);
						replacer.bind('mouseout',mousedOut);
						replacer.bind('mouseover',mousedOver);
					}
					var hideIt = function() {
						theMenu.unbind('mouseout');
						theMenu.unbind('mouseover');
						replacer.unbind('mouseout');
						replacer.unbind('mouseover');
						theMenu.css("visibility","hidden");
					}
					showIt();
				});
				replacer.append(jQuery("<span/>").addClass("first-child").addClass("isSplit").append(jQuery(el).clone()).append(splitterLink));
			}
			else {
				replacer.append(jQuery("<span/>").addClass("first-child").append(jQuery(el).clone()))
			}
			jQuery(el).replaceWith(replacer);
		});
		$(".multiSelectRow INPUT").change(msChanged);
		$(".multiSelectRow INPUT:checked").parent().addClass('msSelected');
		
		jQuery('form.rt input.number,form.rt input.integer,form.rt input.fix1,form.rt input.dollar,form.rt input.fix3').change(validNumeric);
		
		// Tooltip
		if($('LABEL.err').length) $('LABEL.err').tooltip({ effect: 'slide' });
	}
});












