//hotkey
(function(jQuery){jQuery.fn.__bind__=jQuery.fn.bind;jQuery.fn.__unbind__=jQuery.fn.unbind;jQuery.fn.__find__=jQuery.fn.find;var hotkeys={version:'0.7.9',override:/keypress|keydown|keyup/g,triggersMap:{},specialKeys:{27:'esc',9:'tab',32:'space',13:'return',8:'backspace',145:'scroll',20:'capslock',144:'numlock',19:'pause',45:'insert',36:'home',46:'del',35:'end',33:'pageup',34:'pagedown',37:'left',38:'up',39:'right',40:'down',109:'-',112:'f1',113:'f2',114:'f3',115:'f4',116:'f5',117:'f6',118:'f7',119:'f8',120:'f9',121:'f10',122:'f11',123:'f12',191:'/'},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":"\"",",":"<",".":">","/":"?","\\":"|"},newTrigger:function(type,combi,callback){var result={};result[type]={};result[type][combi]={cb:callback,disableInInput:false};return result;}};hotkeys.specialKeys=jQuery.extend(hotkeys.specialKeys,{96:'0',97:'1',98:'2',99:'3',100:'4',101:'5',102:'6',103:'7',104:'8',105:'9',106:'*',107:'+',109:'-',110:'.',111:'/'});jQuery.fn.find=function(selector){this.query=selector;return jQuery.fn.__find__.apply(this,arguments);};jQuery.fn.unbind=function(type,combi,fn){if(jQuery.isFunction(combi)){fn=combi;combi=null;}
if(combi&&typeof combi==='string'){var selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();var hkTypes=type.split(' ');for(var x=0;x<hkTypes.length;x++){delete hotkeys.triggersMap[selectorId][hkTypes[x]][combi];}}
return this.__unbind__(type,fn);};jQuery.fn.bind=function(type,data,fn){var handle=type.match(hotkeys.override);if(jQuery.isFunction(data)||!handle){return this.__bind__(type,data,fn);}
else{var result=null,pass2jq=jQuery.trim(type.replace(hotkeys.override,''));if(pass2jq){result=this.__bind__(pass2jq,data,fn);}
if(typeof data==="string"){data={'combi':data};}
if(data.combi){for(var x=0;x<handle.length;x++){var eventType=handle[x];var combi=data.combi.toLowerCase(),trigger=hotkeys.newTrigger(eventType,combi,fn),selectorId=((this.prevObject&&this.prevObject.query)||(this[0].id&&this[0].id)||this[0]).toString();trigger[eventType][combi].disableInInput=data.disableInInput;if(!hotkeys.triggersMap[selectorId]){hotkeys.triggersMap[selectorId]=trigger;}
else if(!hotkeys.triggersMap[selectorId][eventType]){hotkeys.triggersMap[selectorId][eventType]=trigger[eventType];}
var mapPoint=hotkeys.triggersMap[selectorId][eventType][combi];if(!mapPoint){hotkeys.triggersMap[selectorId][eventType][combi]=[trigger[eventType][combi]];}
else if(mapPoint.constructor!==Array){hotkeys.triggersMap[selectorId][eventType][combi]=[mapPoint];}
else{hotkeys.triggersMap[selectorId][eventType][combi][mapPoint.length]=trigger[eventType][combi];}
this.each(function(){var jqElem=jQuery(this);if(jqElem.attr('hkId')&&jqElem.attr('hkId')!==selectorId){selectorId=jqElem.attr('hkId')+";"+selectorId;}
jqElem.attr('hkId',selectorId);});result=this.__bind__(handle.join(' '),data,hotkeys.handler)}}
return result;}};hotkeys.findElement=function(elem){if(!jQuery(elem).attr('hkId')){if(jQuery.browser.opera||jQuery.browser.safari){while(!jQuery(elem).attr('hkId')&&elem.parentNode){elem=elem.parentNode;}}}
return elem;};hotkeys.handler=function(event){var target=hotkeys.findElement(event.currentTarget),jTarget=jQuery(target),ids=jTarget.attr('hkId');if(ids){ids=ids.split(';');var code=event.which,type=event.type,special=hotkeys.specialKeys[code],character=!special&&String.fromCharCode(code).toLowerCase(),shift=event.shiftKey,ctrl=event.ctrlKey,alt=event.altKey||event.originalEvent.altKey,mapPoint=null;for(var x=0;x<ids.length;x++){if(hotkeys.triggersMap[ids[x]][type]){mapPoint=hotkeys.triggersMap[ids[x]][type];break;}}
if(mapPoint){var trigger;if(!shift&&!ctrl&&!alt){trigger=mapPoint[special]||(character&&mapPoint[character]);}
else{var modif='';if(alt)modif+='alt+';if(ctrl)modif+='ctrl+';if(shift)modif+='shift+';trigger=mapPoint[modif+special];if(!trigger){if(character){trigger=mapPoint[modif+character]||mapPoint[modif+hotkeys.shiftNums[character]]||(modif==='shift+'&&mapPoint[hotkeys.shiftNums[character]]);}}}
if(trigger){var result=false;for(var x=0;x<trigger.length;x++){if(trigger[x].disableInInput){var elem=jQuery(event.target);if(jTarget.is("input")||jTarget.is("textarea")||jTarget.is("select")||elem.is("input")||elem.is("textarea")||elem.is("select")){return true;}}
result=result||trigger[x].cb.apply(this,[event]);}
return result;}}}};window.hotkeys=hotkeys;return jQuery;})(jQuery);

//page_slide
(function(a){a.fn.pageSlide=function(g){function h(c){if(a("#pageslide-slide-wrap").width()!=0)return false;b.modal==true&&a("#pageslide-blanket").toggle().animate({opacity:"0.8"},"fast","linear");b.start();if(b.direction=="right"){direction={right:"-"+b.width};a("#pageslide-slide-wrap").css({left:0});a.browser.msie?a("body, html").css({overflowX:"hidden"}):a("body").css({overflowX:"hidden"})}else{direction={left:"-"+b.width};a("#pageslide-slide-wrap").css({right:0})}a("#pageslide-slide-wrap").animate({width:b.width}, b.duration);a("#pageslide-body-wrap").animate(direction,b.duration,function(){b.stop();a.ajax({type:"GET",url:a(c).attr("href"),success:function(d){a("#pageslide-content").html(d).queue(function(){a(this).dequeue();a("#pageslide-slide-wrap a").unbind("click").click(function(e){document.location.href=e.target.href});a(this).find(".pageslide-close").unbind("click").click(function(e){f(e);a(this).find("pageslide-close").unbind("click")});b.complete()})}})})}function f(c){if(a(c)[0].button!=2&&a("#pageslide-slide-wrap").css("width")!= "0px"){i();b.start();direction=a("#pageslide-slide-wrap").css("left")!="0px"?{left:"0"}:{right:"0"};a("#pageslide-body-wrap").animate(direction,b.duration);a("#pageslide-slide-wrap").animate({width:"0"},b.duration,function(){a("#pageslide-content").empty();a("#pageslide-body-wrap, #pageslide-slide-wrap").css("left","");a("#pageslide-body-wrap, #pageslide-slide-wrap").css("right","");a.browser.msie?a("body, html").css({overflowX:""}):a("body").css({overflowX:""});b.stop();b.complete()})}}function i(){b.modal== true&&a("#pageslide-blanket").animate({opacity:"0.0"},"fast","linear",function(){a(this).toggle()})}var b=a.extend({width:"300px",duration:"normal",direction:"left",modal:false,start:function(){},stop:function(){},complete:function(){},_identifier:a(this)},g),j={position:"fixed",width:"0",top:"0",height:"100%",zIndex:"999"},k={position:"relative",zIndex:"0"},l={position:"fixed",top:"0px",left:"0px",height:"100%",width:"100%",opacity:"0.0",backgroundColor:"black",zIndex:"1",display:"none"};(function(){if(a("#pageslide-body-wrap, #pageslide-content, #pageslide-slide-wrap").size()== 0){var c=document.createElement("div");a(c).css(k);a(c).attr("id","pageslide-body-wrap").width(a("body").width());a("body").contents().wrapAll(c);c=document.createElement("div");a(c).attr("id","pageslide-content").width(b.width);var d=document.createElement("div");a(d).css(j);a(d).attr("id","pageslide-slide-wrap").append(c);a("body").append(d)}if(a("#pageslide-blanket").size()==0&&b.modal==true){c=document.createElement("div");a(c).css(l);a(c).attr("id","pageslide-blanket");a("body").append(c);a("#pageslide-blanket").click(function(){return false})}a(window).resize(function(){a("#pageslide-body-wrap").width(a("body").width())})})(this); return this.each(function(){a(this).unbind("click").bind("click",function(){h(this);a("#pageslide-slide-wrap").click(function(){return false});b.modal!=true&&a(document).unbind("click").click(function(c){f(c);return false});return false})})}})(jQuery);

//watermarked
(function($) {
	$.fn.watermark = function(css, text) {
		return this.each(function() {
			var i = $(this), w;
			i.focus(function() {
				w && !(w=0) && i.removeClass(css).data('w',0).val('');
			})
			.blur(function() {
				!i.val() && (w=1) && i.addClass(css).data('w',1).val(text);
			})
			.closest('form').submit(function() {
				w && i.val('');
			});
			i.blur();
		});
	};
	$.fn.removeWatermark = function() {
		return this.each(function() {
			$(this).data('w') && $(this).val('');
		});
	};
})(jQuery);


//Preload
(function(c){var h=[];c.loadImages=function(a,d){a instanceof Array||(a=[a]);for(var e=a.length,f=0,g=e;g--;){var b=document.createElement("img");b.onload=function(){f++;f>=e&&c.isFunction(d)&&d()};b.src=a[g];h.push(b)}}})(jQuery);


//Expand 2!!


//Private variables
var colsDefault = 0;
var rowsDefault = 0;
//var rowsCounter = 0;

//Private functions
function setDefaultValues(txtArea)
{
	colsDefault = txtArea.cols;
	rowsDefault = txtArea.rows;
	//rowsCounter = document.getElementById("rowsCounter");
}

function bindEvents(txtArea)
{
	txtArea.onkeyup = function() {
		grow(txtArea);
	}
}

//Helper functions
function grow(txtArea)
{
    var linesCount = 0;
    var lines = txtArea.value.split('\n');

    for (var i=lines.length-1; i>=0; --i)
    {
        linesCount += Math.floor((lines[i].length / colsDefault) + 1);
    }

    if (linesCount >= rowsDefault)
        txtArea.rows = linesCount + 1;
	else
        txtArea.rows = rowsDefault;
	//rowsCounter.innerHTML = linesCount + " | " + txtArea.rows;
}

//Public Method
jQuery.fn.autoGrow = function(){
	return this.each(function(){
		setDefaultValues(this);
		bindEvents(this);
	});
};


