// -- string trim function
String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
};

// -- validate forms 

$("form").fatValidate();

// -- MSIE 6.0 & 7.0

var ie7 = /MSIE 7.0/g.test(navigator.userAgent),
ie6 = /MSIE 6.0/g.test(navigator.userAgent),
classAttr = (ie7 || ie6) ? "className":"class";

// -- placeholder attributes for those without

(function(placeholder) {
	if(placeholder === false) {
		$(document.forms).find('input').each(function() {
			var me = $(this),
			text = me.attr("placeholder");
			if(!!text) {
				me.val(text).css({"color":"#999"});
				me.focus(function(){
					if(me.val() == text) me.val('').removeAttr("style");
				});
				me.blur(function(){
					if(me.val() == '') me.val(text).css({"color":"#999"});
				});
			};
		});
	};
})(Modernizr.input.placeholder);

// -- styled select box

function SelectReplacement(ulStr, selStr){
	var selectList = $(ulStr),
	replacedDD = $(selStr),
	listItemHeight = 30,
	options = replacedDD.find("option"),
	optLen = options.length, x = 0,
	listOpen = false;
	while(x < optLen) {
		var li = document.createElement("li");
		li.innerHTML = options[x].innerHTML;
		$(li).appendTo(selectList);
		x++;
	};
	var items = selectList.find("li"),
	len = items.length;
	while(len--) {
		var li = items[len];
		li.idx = len;
		li.style.top = (len * listItemHeight)  + "px"
	};
	var firstLi = items[0],
	setHTML = items[1].innerHTML,
	initHTML = setHTML;
	firstLi.innerHTML = setHTML;
	$(items).click(function(){	
		if(!listOpen) {
			$(this).parent("ul").css("z-index","5");	
			$(items).css("display","block");
			setTimeout(function(){
				$(document).click(function(){
					$(firstLi).click();
				});
			},1);
		} else {
			$(this).parent("ul").css("z-index","4");	
			$(document).unbind("click");
			setHTML = this.innerHTML;
			$(options).attr("selected",false);
			$(options[this.idx-1]).attr("selected","selected");
			$(items).css("display","none");
		};
		if(setHTML == "") { setHTML = initHTML };
		firstLi.style.display = "block";
		firstLi.innerHTML = setHTML;
		listOpen = !listOpen;
	});
};
