//hover-ie.js
function ieHover()
{
	var blocks = document.getElementsByTagName("ul");
	for(var k=0; k<blocks.length; k++){
		if(blocks[k].className.indexOf("hover-ie") != -1){
			var nodes = blocks[k].getElementsByTagName("li");
			for (var i=0; i<nodes.length; i++)
			{
				nodes[i].onmouseover = function() 
				{
					this.className += " hover";
				}
				nodes[i].onmouseout = function()
				{
					this.className = this.className.replace(" hover", "");
				}
			}
		}
	}
}

if (window.attachEvent && !window.opera){
	window.attachEvent("onload", ieHover);
}
//

//invisibletext.js
var invisibleTexts = [];

function clearInvisibleText(name) {
	newArray = []
	for (i in invisibleTexts) {
		inputName = invisibleTexts[i];
		if (name == inputName) {
			$("input[name="+name+ "]").val("");
		} else {
			newArray.push(inputName);
		}
	}
	invisibleTexts = newArray;	
}

function clearAllInvisibleTexts() {
	for (i in invisibleTexts) {
		$("input[name="+invisibleTexts[i]+ "]").val("");
	}
	invisibleTexts = [];
}

function addInvisibleText(name, value) {
	input = "input[name="+name+ "]"
	oldValue = $(input).val()
	if (oldValue == "" || oldValue == value) {
		invisibleTexts.push(name);
		$(input).val(value);
		$(input).focus(function () {
			clearInvisibleText(name);
		});
	}
}
//

//utils.js
function setShort(selector, url, maxLength) {
	text = $(selector).text();
	if (text.length > maxLength) {
		text = text.slice(0,maxLength) + '... ';
		$(selector).text(text);
		a = '<a class="readMore" href="' + url + '">';
		$(selector).append(a + 'read more</a>');
	}
}

function setShortLong(shortSelector, longSelector, maxLength) {
	text = $(shortSelector).text();
	if (text.length > maxLength) {
		text = text.slice(0,maxLength) + '... ';
		$(shortSelector).text(text);
		a = '<a class="readMore" href="javascript:toggleShortLong(';
		a += "'" + shortSelector + "', '" + longSelector + "'";
		a += ')">';
		$(shortSelector).append(a + 'read more</a>');
		$(longSelector).append('<br/>' + a + 'read less</a>');
		$(shortSelector).show();
		$(longSelector).hide();
	} else {
		$(shortSelector).hide();
		$(longSelector).show();		
	}
}
function toggleShortLong(shortSelector, longSelector) {
	$(shortSelector).toggle();
	$(longSelector).toggle();		
}

function redirectToLogin(loginUrl, nextUrl){
	if (nextUrl == null) nextUrl = window.location;
	window.location = loginUrl+ '?next=' + nextUrl;
}
//

//points.js
function costText(cost) {
	text = '';
	for (i = 0; i < cost; i++) {
		text += '$'
	}
	return text;
}

function setPointRating(pointSelector, value) {
	i = 0;
	$(pointSelector).each(function() {
		if (i < value) $(this).addClass('active');
		else $(this).removeClass('active');
		i++;
	});
}

function setMouseFunctions(pr, pointItem, value) {
	pointItem.mouseover(function() {pr.showValue(value)});
	pointItem.mouseout(function() {pr.mouseOut(value)});
	pointItem.click(function() {pr.setValue(value)});	
}

function pointRating(pointSelector, inputSelector, initialValue) {
	this.pointSelector = pointSelector;
	this.inputSelector = inputSelector;
	this.value = initialValue;
	This = this;
	
	this.showValue = function(value) {setPointRating($(this.pointSelector), value)};
	this.setValue = function(value, pRaiting) {this.showValue(value); $(this.inputSelector).val(value);this.value=value};
	this.mouseOver = function(value) {this.showValue(value)};
	this.mouseOut = function() {this.showValue(this.value)};

	i = 0;
	$(this.pointSelector).each(function() {
		setMouseFunctions(This, $(this), i+1);
		i++;
	}); 
	this.setValue(initialValue);
}
//
/*
CSS Browser Selector v0.3.2
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',h=document.getElementsByTagName('html')[0],b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3')?g+' ff3':is('gecko/')?g:/opera(\s|\/)(\d+)/.test(ua)?'opera opera'+RegExp.$2:is('konqueror')?'konqueror':is('chrome')?w+' chrome':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);
//

//flaptor-util.js
var util;

if (!util) {
	
	util = {
	
		//for debugging
	    checkLibrary : function () {
	        alert("flaptor javascript - util present");
	    },
	    
//////////////////////////// ADDING FUNCTIONALITY //////////////////////////////

	    includeScript : function (scriptSrc) {
		    var script = document.createElement("script");
		    script.type="text/javascript";
		    script.src=scriptSrc;
		    document.getElementsByTagName("head")[0].appendChild(script);
	    },
		addToOnresize: function (myFunction) {
		    var oldResize = window.onresize;
		    window.onresize=function(){
		        if (oldResize != null) oldResize();
		        myFunction();
		    }
		},
		addToOnload: function (myFunction) {
		    var oldOnload = window.onload;
		    window.onload=function(){
		        if (oldOnload != null) oldOnload();
		        myFunction();
		    }
		},
		
//////////////////////////// SHOWING, VIEWING //////////////////////////////
	    
	    setVisible: function (d, showOrNot) {
	        if (showOrNot)
	            document.getElementById(d).style.display = "block";
	        else 
	            document.getElementById(d).style.display = "none";
	    },
	    show: function (d) {
	        document.getElementById(d).style.display = "block";
	    },
		hide: function (d) {
		    document.getElementById(d).style.display = "none";
		},
		toggle: function (d) {
		    if(d.length < 1) { return; }
		    if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; }
		    else { document.getElementById(d).style.display = "none"; }
		},
	

//////////////////////////// TIMEZONE  //////////////////////////////
		
	    getTimezone: function() {
	        return -(new Date()).getTimezoneOffset()/60;
	    },
	

		
//////////////////////////// CONFIRMATION  //////////////////////////////
		confirmUrl: function(text, url) {
	        if(confirm(text)) {
	            location.href = url;
	        }
	    },
	
//////////////////////////// VALIDATING & DATA //////////////////////////////

		isEmpty: function(value){
		    return (value.trim().length == 0);
		},
		isInt: function (value){
		    if (!this.isNumber(value))return false;
		    return value.search(/\./) ==-1; 
		},
		isNumber: function(value){
		    if (this.isEmpty(value)) return false;
		    return isFinite(value);
		},
		isDate: function(value) {
			regexp = new RegExp().compile("^(.{1,2})(\/|-)(.{1,2})(\/|-)(.{4})$");
			matched = regexp.exec(value);
		    if (matched == null) return false;
		    return !isNaN(Date.parse(value));
		},

	
		getText: function (id) {
		    return document.getElementById(id).firstChild.nodeValue;
		},
		setText: function (id, text) {
		    return document.getElementById(id).firstChild.nodeValue= text;
		},
	
		getValue: function (id) {
		    return document.getElementById(id).value;
		},

//////////////////////////// URL & LOCATION //////////////////////////////
		
		getParam: function (param, defaultValue){
		    matchParam = new RegExp(param + "=[^&]*");
		    matched = matchParam.exec(location.search);
		    if (matched != null) {
		    	return String(matched).slice(5)
		    } else {
		    	return defaultValue;
		    }
		},
		setParam: function (param, value){
		    if (this.getParam(param, null) != null) {
		        matchParam = new RegExp(param + "=[^&]*");
		        location.search = location.search.replace(matchParam, param+"="+value);
		    } else {
		        location.search += "&" + param + "=" + value;
		    }
		},

//////////////////////////// PAGINATION //////////////////////////////
		changePage: function (add, defaultValue){
		    pageNum = parseInt(this.getParam("page", 0));
		    this.setParam("page", pageNum + add);
		}
	};

	String.prototype.trim = function() {
	    return this.replace(/^\s+|\s+$/g,"");
	};
	String.prototype.ltrim = function() {
	    return this.replace(/^\s+/,"");
	};
	String.prototype.rtrim = function() {
	    return this.replace(/\s+$/,"");
	};
}
//

//jqmodal.js
/*
 * jqModal - Minimalist Modaling with jQuery
 *   (http://dev.iceburg.net/jquery/jqModal/)
 *
 * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 * $Version: 03/01/2009 +r14
 */
(function($) {
$.fn.jqm=function(o){
var p={
overlay: 50,
overlayClass: 'jqmOverlay',
closeClass: 'jqmClose',
trigger: '.jqModal',
ajax: F,
ajaxText: '',
target: F,
modal: F,
toTop: F,
onShow: F,
onHide: F,
onLoad: F
};
return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
if(p.trigger)$(this).jqmAddTrigger(p.trigger);
});};

$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
$.fn.jqmShow=function(t){return this.each(function(){t=t||window.event;$.jqm.open(this._jqm,t);});};
$.fn.jqmHide=function(t){return this.each(function(){t=t||window.event;$.jqm.close(this._jqm,t)});};

$.jqm = {
hash:{},
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index'))),z=(z>0)?z:3000,o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
 if(c.modal) {if(!A[0])L('bind');A.push(s);}
 else if(c.overlay > 0)h.w.jqmAddClose(o);
 else o=F;

 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
 if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}

 if(c.ajax) {var r=c.target||h.w,u=c.ajax,r=(typeof r == 'string')?$(r,h.w):$(r),u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
 else if(cc)h.w.jqmAddClose($(cc,h.w));

 if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
 (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
},
close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
 if(A[0]){A.pop();if(!A[0])L('unbind');}
 if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
 if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
},
params:{}};
var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),
e=function(h){if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
L=function(t){$()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
 if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
})(jQuery);