jQuery.noConflict();

//-- Preload images
if (document.images) {
	var aryImages = new Array();
	aryImages[0] = new Image();
	aryImages[0].src = "/common/images/icon_info.png";
	aryImages[1] = new Image();
	aryImages[1].src = "/common/images/icon_check.png";
	aryImages[2] = new Image();
	aryImages[2].src = "/common/images/icon_warn.png";
	aryImages[3] = new Image();
	aryImages[3].src = "/common/images/icon_error.png";
	aryImages[4] = new Image();
	aryImages[4].src = "/common/images/icon_favorite_add.png";
	aryImages[5] = new Image();
	aryImages[5].src = "/common/images/icon_favorite_remove.png";
}

function formatPhone(field, event) {
	if (field.value.replace(/^\s+|\s+$/g, "") == "") {
		return true;
	}
	event = event || window.event;
	code = event.which || event.keyCode;
	//-- ignore backspace, tab, shift, ctrl, home, end, arrows, del
	var aryCodes = [ 8, 9, 16, 17, 35, 36, 37, 38, 39, 46 ];
	if (!aryCodes.contains(code)) {
		if (field.value.match(/^[01]?\s?\(\d{1,2}$/) ||
			field.value.match(/^[01]?\s?\(\d{3}\)\s\d{1,2}$/) ||
			field.value.match(/^[01]?\s?\(\d{3}\)\s\d{3}-\d{1,4}$/) || 
			field.value.match(/^[01]?\s?\(\d{3}\)\s\d{3}-\d{4}\s[x]{1}\s[\d]{1,5}$/)
		) {
			return true;
		}
		var proceed = true;
		if (proceed) proceed = !field.value.match(/^([01])\s$/);
		if (proceed) proceed = !field.value.match(/^([01]?\s?)(\()$/);
		if (proceed) proceed = !field.value.match(/^([01]?\s?)(\([0-9]{3}\))\s$/);
		if (proceed) proceed = !field.value.match(/^([01]?\s?)(\([0-9]{3}\))\s([0-9]{3})\-$/);
		if (proceed) proceed = !field.value.match(/^([01]?\s?)(\([0-9]{3}\))\s([0-9]{3})\-([0-9]{4})([ex\s])$/);
		if (proceed) {
			var temp = field.value.replace(/[^0-9]/g, "");
			var cursor = temp.length;
			var prefix = temp.replace(/^([01]?)([0-9]*)$/, "$1").length;
			temp = temp.replace(/^([01]?)([0-9]{0,3})([0-9]{0,3})([0-9]{0,4})([0-9]*)$/, "$1 ($2) $3-$4 x $5");
			if (cursor < (11+prefix)) temp = temp.replace(/\s*x\s*$/, "");
			if (cursor < (6+prefix)) temp = temp.replace(/\-\s*$/, "");
			if (cursor < (3+prefix)) temp = temp.replace(/\)\s*$/, "");
			if (cursor < (1+prefix)) temp = temp.replace(/\s\(*$/, "");
			if (!cursor) temp = "";
			if (cursor > (15+prefix)) temp = temp.substring(0,temp.length-(cursor-(15+prefix)));
			temp = temp.replace(/^\s+|\s+$/g, "");
			field.value = temp;
		} else {
			if (field.value.match(/^([01]?\s?)(\([0-9]{3}\))\s([0-9]{3})\-([0-9]{4})([ex\s])$/)) {
				field.value = field.value.replace(/([ex\s])$/, " x ");
			} else {
				field.value = field.value;
			}
		}
		field.focus();
	}
	return true;
}

function imposeMaxLength(field, event) {
	if (field.value.replace(/^\s+|\s+$/g, "") == "") {
		return true;
	}
	event = event || window.event;
	code = event.which || event.keyCode;
	//-- allow backspace, tab, shift, ctrl, home, end, arrows, del
	var aryCodes = [ 8, 9, 16, 17, 35, 36, 37, 38, 39, 46 ];
	if (aryCodes.contains(code)) {
		return true;
	}
	var maxlen = (field.getAttribute ? parseInt(field.getAttribute("maxlength")) : "");
	if (isNaN(maxlen)) {
		return true;
	}
	if (field.value.length > maxlen) {
		field.value = field.value.substring(0, maxlen);
	}
	return (field.value.length < maxlen);
}

var maxLengthField;
function imposeMaxLength2(field, event) {
	//-- maxlength attribute must be set
	//onkeyup="return imposeMaxLength(this, event);"
	//onkeydown="return imposeMaxLength(this, event);"
	//onpaste="imposeMaxLength(this, event); this.blur(); this.focus();"
	//oninput="imposeMaxLength(this, event)"
	//onfocus="imposeMaxLength(this, event)"
	//onblur="imposeMaxLength(this, event)"
	try {
		if (field.value.replace(/^\s+|\s+$/g, "") == "") {
			return true;
		}
		event = event || window.event;
		code = event.which || event.keyCode;
		//-- allow backspace, tab, shift, ctrl, home, end, arrows, del
		var aryCodes = [ 8, 9, 16, 17, 35, 36, 37, 38, 39, 46 ];
		if (aryCodes.contains(code)) {
			return true;
		}
		var maxlen = (field.getAttribute ? parseInt(field.getAttribute("maxlength")) : "");
		if (isNaN(maxlen)) {
			return true;
		}
		if (field.value.length >= maxlen) {
			field.value = field.value.substring(0, maxlen-1);
			maxLengthField = field;
			setTimeout("maxLengthField.scrollTop = maxLengthField.scrollHeight;", 0);
		}

		return (field.value.length < maxlen);
	} catch (err) {
		//alert(err.description);
		return true;
	}
}

var popupWindow;
function openWindow(url, width, height) {
	popupWindow = window.open(url, 'youpolls', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=100,left=100,height='+height+',width='+width);
	if (window.focus) { popupWindow.focus(); }
}

function closeWindow() {
	window.close();
}

function setBookmark() {
	var site = "YouPolls.com";
	var url = "http://www.youpolls.com";
	if (document.all) { //-- IE
		window.external.AddFavorite(url, site);
	} else if (window.opera && window.print) { //-- Opera
		alert("Opera no longer supports this feature.");
		//var elem = document.createElement("a");
		//elem.setAttribute("href", url);
		//elem.setAttribute("title", site);
		//elem.setAttribute("rel", 'sidebar');
		//elem.setAttribute("onclick", "return false");
		//elem.click();
	} else if (window.sidebar) { //-- Firefox
		window.sidebar.addPanel(site, url, "");
	} else {
		//-- Everyone Else
		alert("Could not set YouPolls.com as a bookmark.");
	}
	return false;
}

function setHomepage() {
	if (document.all) { //-- IE
		document.body.style.behavior="url(#default#homepage)";
		document.body.setHomePage("http://www.youpolls.com");
	} else if (document.getElementById) { //-- Firefox, Opera
		alert("To make YouPolls.com your homepage, drag the bookmark icon onto the home button in your browser.");
	} else { //-- Everyone Else
		alert("Your browser doesn\'t support this feature.");
	}
	return false;
}

function showMenu(strSubnav) {
	if (document.getElementById(strSubnav)) {
		document.getElementById(strSubnav).style.display = "block";
	}
}

function hideMenu(strSubnav) {
	if (document.getElementById(strSubnav)) {
		document.getElementById(strSubnav).style.display = "none";
	}
}

function toggleMenu(strSubnav) {
	if (document.getElementById(strSubnav)) {
		if (document.getElementById(strSubnav).style.display != "none") {
			document.getElementById(strSubnav).style.display = "block";
		} else {
			document.getElementById(strSubnav).style.display = "none";
		}
	}
}

function setInnerText(element, text) {
	if (element) {
		try { element.innerText = text; } catch (er) { }
	}
}

function setInnerTextById(id, text) {
	if (document.getElementById(id)) {
		try { document.getElementById(id).innerText = text; } catch (er) { }
	}
}

function clearInnerText(id) {
	if (document.getElementById(id)) {
		try {
			document.getElementById(id).innerText = "";
		} catch (er) { }
	}
}

function setInnerHtml(element, text) {
	if (element) {
		try { element.innerHTML = text; } catch (er) { }
	}
}

function setInnerHtmlById(id, text) {
	if (document.getElementById(id)) {
		try { document.getElementById(id).innerHTML = text; } catch (er) { }
	}
}

function clearInnerHtml(id) {
	if (document.getElementById(id)) {
		try {
			document.getElementById(id).innerHTML = "";
		} catch (er) { }
	}
}

var ratingText = "";
function showRatingOld(pollId, rating) {
	hideRatingOld(pollId);
	var baseId = "poll_" + pollId.toString() + "_rating";
	if (document.getElementById(baseId)) {
		ratingText = document.getElementById(baseId).innerHTML;
		document.getElementById(baseId).innerHTML = rating.toString() + " Star" + (rating != 1 ? "s" : "");
	}
	for (var i=1; i<=5; i++) {
		if (document.getElementById(baseId + "_" + i.toString())) {
			if (i <= rating) {
				document.getElementById(baseId + "_" + i.toString()).className = "highlight";
			} else {
				document.getElementById(baseId + "_" + i.toString()).className = "hide";
			}
		}
	}
}

function hideRatingOld(pollId) {
	var baseId = "poll_" + pollId.toString() + "_rating";
	if (document.getElementById(baseId) && ratingText != "") {
		document.getElementById(baseId).innerHTML = ratingText;
	}
	for (var i=1; i<=5; i++) {
		if (document.getElementById(baseId + "_" + i.toString())) {
			document.getElementById(baseId + "_" + i.toString()).className = "";
		}
	}
}

function showRating(baseId, rating) {
	hideRating(baseId);
	/*
	if (document.getElementById(baseId)) {
		ratingText = document.getElementById(baseId).innerHTML;
		document.getElementById(baseId).innerHTML = rating.toString() + " Star" + (rating != 1 ? "s" : "");
	}
	*/
	for (var i=1; i<=5; i++) {
		if (document.getElementById(baseId + "_" + i.toString())) {
			if (i <= rating) {
				document.getElementById(baseId + "_" + i.toString()).className = "highlight";
			} else {
				document.getElementById(baseId + "_" + i.toString()).className = "hide";
			}
		}
	}
}

function hideRating(baseId) {
	/*
	if (document.getElementById(baseId) && ratingText != "") {
		document.getElementById(baseId).innerHTML = ratingText;
	}
	*/
	for (var i=1; i<=5; i++) {
		if (document.getElementById(baseId + "_" + i.toString())) {
			document.getElementById(baseId + "_" + i.toString()).className = "";
		}
	}
}

function selectRating(baseId, rating) {
	hideRating(baseId);
	/*
	if (document.getElementById(baseId)) {
		ratingText = document.getElementById(baseId).innerHTML;
		document.getElementById(baseId).innerHTML = rating.toString() + " Star" + (rating != 1 ? "s" : "");
	}
	*/
	for (var i=1; i<=5; i++) {
		if (document.getElementById(baseId + "_" + i.toString())) {
			if (i <= rating) {
				document.getElementById(baseId + "_" + i.toString()).className = "selected";
			} else {
				document.getElementById(baseId + "_" + i.toString()).className = "hide";
			}
		}
	}
}

Array.prototype.contains = function(obj) {
	var i = this.length;
	while (i--) {
		if (this[i] === obj) {
			return true;
		}
	}
	return false;
}

var _searchWatermarkText = "Search Youpolls...";
var _searchWatermarkClass = "watermark";
function blurSearch(element) {
	try {
		if (element.value.replace(/^\s+|\s+$/g, "") == "") {
			element.value = _searchWatermarkText;
		}
		var cname = element.className.replace(/^\s+|\s+$/g, "") + " ";
		cname = cname.replace(_searchWatermarkClass + " ", "");
		cname = cname.replace(/^\s+|\s+$/g, "");
		element.className = cname + (element.value.replace(/^\s+|\s+$/g, "") == _searchWatermarkText ? " " + _searchWatermarkClass : "");
	} catch (err) { }
}

function focusSearch(element) {
	try {
		var cname = element.className.replace(/^\s+|\s+$/g, "") + " ";
		cname = cname.replace(_searchWatermarkClass + " ", "");
		cname = cname.replace(/^\s+|\s+$/g, "");
		element.className = cname;
		if (element.value.replace(/^\s+|\s+$/g, "") == _searchWatermarkText) {
			element.value = "";
		}
	} catch (err) { }
}


var _objElement, _objTimer, _objHours, _objMinutes, _objSeconds, _objTimeout;
function startCountdown(strId) {
	_objElement = document.getElementById(strId);
	if (_objElement) {
		_objTimer = _objElement.innerHTML;
		_objHours = parseFloat(_objTimer.substring(0, _objTimer.indexOf(":")));
		_objMinutes = parseFloat(_objTimer.substring(_objTimer.indexOf(":") + 1, _objTimer.lastIndexOf(":")));
		_objSeconds = parseFloat(_objTimer.substring(_objTimer.lastIndexOf(":") + 1, _objTimer.length));
		if (_objTimer.indexOf(":") == _objTimer.lastIndexOf(":")) { _objMinutes = _objHours; _objHours = 0; }
		_objTimeout = (_objMinutes + 1 > 0 ? _objTimeout = setInterval("doCountdown()", 1000) : 0);
	}
}

function doCountdown() {
	// only supports hours, minutes, and seconds
	if (_objHours >= 1 || _objMinutes >= 1 || _objSeconds >= 1) {
		_objSeconds -= 1;
		if (_objSeconds < 0) { _objSeconds = 59; _objMinutes -= 1; }
		if (_objMinutes < 0) { _objMinutes = 59; _objHours -= 1; }
		if (_objHours < 0) { _objSeconds = 0; _objMinutes = 0; _objHours = 0; clearInterval(_objTimeout); }

		var strReturn = _objMinutes + ":";
		if (_objHours >=1) { if (_objMinutes <= 9) { strReturn = "0" + strReturn; } strReturn = _objHours + ":" + strReturn; }
		if (_objSeconds <= 9) strReturn += "0";
		strReturn = strReturn + _objSeconds;
		
		if (_objElement) { _objElement.innerHTML = strReturn; }
		//if (strReturn == "0:00") { _objTimeout = setTimeout("window.location.href=window.location.href", 1000); }
		if (strReturn == "0:00") { window.location.href = window.location.href; }
	} else {
		clearInterval(_objTimeout);
	}
}

function resizeTextarea(id, minHeight, strClass) {
	var text = (id && id.style ? id : document.getElementById(id));
	if (!text) {
		return;
	}

	var currentHeight = text.clientHeight + (document.all ? -4 : 0);
	var scrollHeight = text.scrollHeight + (document.all ? 12 : 0);
	var resizeHeight = (document.all ? -5 : 0);

	if (scrollHeight > currentHeight) {
		text.style.height = scrollHeight.toString() + "px";
	} else {
		var objResizer = document.getElementById("textareaResizer");
		if (objResizer) {
			var textarea = document.createElement("TEXTAREA");
			textarea.className = strClass;
			if (document.all) {
				textarea.style.height = "10000px";
			}
			textarea.style.display = "block";
			textarea.value = text.value + "\n";
			objResizer.appendChild(textarea);
			resizeHeight += (textarea.scrollHeight);
			objResizer.removeChild(textarea);
		}
		resizeHeight = Math.max(resizeHeight, minHeight);
		text.style.height = resizeHeight.toString() + "px";
	}
	
	//window.status = currentHeight.toString() + " - " + scrollHeight.toString() + " - " + text.offsetHeight + " ** " + resizeHeight.toString();
}

