$j = jQuery.noConflict();

/* Toogle text
---------------------------------------------------------------- */

var field = function(){
	return {
		focus:function(f,txt){
			if(f.value==txt){
				f.value='';
			}else{
				f.select();
			}
		},
		blur:function(f,txt){
			if(f.value==''){
				f.value=txt;
			}
		}
	};
}();


/* Link function
---------------------------------------------------------------- */

var url = function(){
	return {
		href:function(url,blank){
			if(blank){
				window.open(url);
			}else{
				location.href = url;
			}
		}
	};
}();


/* Ajax
---------------------------------------------------------------- */

var ajax = function(){
	return {
		nocache:function(){
			var minutes = 1000 * 60;
			var hours = minutes * 60;
			var days = hours * 24;
			var years = days * 365;
			var d = new Date();
			var t = d.getTime();
			return t;
		},
		load:function(url,container,load){
			var obj = document.getElementById(container);
			var loader = '<div class="loading"></div>';
			if(obj && url){
				if(load){obj.innerHTML = loader;}
				ajax.page(url,container);
			}
		},
		page:function(url,container){
			var _url,_no;
			if(url.indexOf("?")==-1){_no = '?~' + ajax.nocache();}else{_no = '&~' + ajax.nocache();}
			_url = url + _no;
			
			if(window.XMLHttpRequest){
				page_request = new XMLHttpRequest();
			}else if(window.ActiveXObject){
				try{
					page_request = new ActiveXObject('Msxml2.XMLHTTP');
				}catch(e){
					try{
						page_request = new ActiveXObject('Microsoft.XMLHTTP');
					}catch(e){}
				}
			}else{
				return false;
			}

			page_request.onreadystatechange = function(){
				ajax.parse(page_request,container);
			}
			page_request.open('GET', _url, true);
			page_request.send(null);
		},
		parse:function(page_request,container){
			if(page_request.readyState==4 && (page_request.status==200 || window.location.href.indexOf('http')==-1)){
				document.getElementById(container).innerHTML = page_request.responseText;
				ajax.completed();
			}
		},
		completed:function(){
			// After complete functions here..
			//comments.sld();
		}
	};
}();


/* Dark layer
---------------------------------------------------------------- */

var darken = function(){
	return {
		create:function(){
			var dark = document.getElementById('layerdark');
			if(!dark){
				var dot = document.createElement("div");
				dot.id = 'layerdark';
				dot.style.opacity = 0.5;
				dot.style.filter = 'alpha(opacity=50)';
				dot.style.width = '100%';
				dot.style.height = '100%';
				dot.style.position = 'absolute';
				dot.style.zIndex = '1000';
				dot.style.backgroundColor = '#000000';
				dot.style.left = '0px';
				dot.style.top = '0px';
				dot.onclick = function(){
					darken.kill();
					pop.kill();
				}
				document.body.appendChild(dot);
			}
		},
		show:function(){
			darken.create();
			var dark = document.getElementById('layerdark');
			var height = document.documentElement.scrollHeight;
			if(dark){
				dark.style.height = height + 'px';
				dark.style.display = 'block';
			}
		},
		fixed:function(){
			var dark = document.getElementById('layerdark');
			var height = document.documentElement.scrollHeight;
			if(dark){
				dark.style.height = height + 'px';
			}
		},
		kill:function(){
			var dark = document.getElementById('layerdark');
			if(dark){dark.style.display = 'none';}
		}
	};
}();


/* Validation
---------------------------------------------------------------- */

var validate = function(){
	return {
		err:function(step,f){
			var obj = document.getElementById(f);
			if(obj){
				if(step=='1'){obj.style.backgroundColor = '#ffabab';/*setTimeout("validate.err('2','"+f+"');", 50);*/}
				if(step=='2'){obj.style.backgroundColor = '#ffc5c5';/*setTimeout("validate.err('3','"+f+"');", 50);*/}
				if(step=='3'){obj.style.backgroundColor = '#ffdfdf';/*setTimeout("validate.err('4','"+f+"');", 50);*/}
				if(step=='4'){obj.style.backgroundColor = '#fef1f1';/*setTimeout("validate.err('5','"+f+"');", 50);*/}
				if(step=='5'){obj.style.backgroundColor = '#f7f7f5';}
			}
		},
		email:function(str){
			var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
			if(filter.test(str)){return true;}else{return false;}
		},
		empty:function(str){
			var filter = /^\s+$/;
			var expression;
			if(filter.test(str) || str==''){expression = false;}else{expression = true;}
			return expression;
		},
		onlynumbers:function(evt){
			var charCode = (evt.which) ? evt.which : event.keyCode;
			if(charCode > 31 && (charCode < 48 || charCode > 57)){return false;}else{return true;}
		},
		comment:function(f,log,txt){
			var execute = true;
			if(!validate.empty(f.comment.value) || f.comment.value==txt){
				execute = false;
				validate.err('1',f.comment.id);
			}

			if(!log){
				// name not required 
				/*
				if(!validate.empty(f.user.value)){
					execute = false;
					validate.err('1',f.user.id);
				}
				*/
				if(f.email.value.length > 0 && !validate.email(f.email.value)){
					execute = false;
					validate.err('1',f.email.id);
				}
			}
			return execute;
		},
		subscribe:function(f){
			var execute = true;
			if(!validate.email(f.email.value)){
				execute = false;
				validate.err('1',f.email.id);
			}
			return execute;
		},
		newprofile:function(f){
			var execute = true;
			var obj = document.getElementById('error');
			if(!validate.empty(f.screenname.value)){
				execute = false;
				validate.err('1',f.screenname.id);
			}
			if(!validate.empty(f.firstname.value)){
				execute = false;
				validate.err('1',f.firstname.id);
			}
			if(!validate.empty(f.lastname.value)){
				execute = false;
				validate.err('1',f.lastname.id);
			}
			if(!validate.email(f.email.value)){
				execute = false;
				validate.err('1',f.email.id);
			}
			if(!validate.empty(f.password1.value)){
				execute = false;
				validate.err('1',f.password1.id);
			}
			if(!validate.empty(f.password2.value)){
				execute = false;
				validate.err('1',f.password2.id);
			}
			if(f.password1.value!=f.password2.value){
				execute = false;
				validate.err('1',f.password1.id);
				validate.err('1',f.password2.id);
			}
			if(execute){
				obj.style.display = 'none';
			}else{
				obj.style.display = 'block';
			}
			/*
			var obj = document.getElementById('accept');
			if(obj){
				obj.checked = false;
			}*/
			return execute;
		},
		editprofile:function(f){
			var execute = true;
			var obj = document.getElementById('error');
			if(!validate.empty(f.firstname.value)){
				execute = false;
				validate.err('1',f.firstname.id);
			}
			if(!validate.empty(f.lastname.value)){
				execute = false;
				validate.err('1',f.lastname.id);
			}
			if(!validate.email(f.email.value)){
				execute = false;
				validate.err('1',f.email.id);
			}
			/*
			if(!validate.empty(f.password1.value)){
				execute = false;
				validate.err('1',f.password1.id);
			}
			if(!validate.empty(f.password2.value)){
				execute = false;
				validate.err('1',f.password2.id);
			}*/
			if(f.password1.value!=f.password2.value){
				execute = false;
				validate.err('1',f.password1.id);
				validate.err('1',f.password2.id);
			}
			if(execute){
				obj.style.display = 'none';
			}else{
				obj.style.display = 'block';
			}
			return execute;
		},
		signin:function(f){
			var execute = true;
			if(!validate.email(f.emaillogin.value)){
				execute = false;
				validate.err('1',f.emaillogin.id);
			}
			if(!validate.empty(f.password.value)){
				execute = false;
				validate.err('1',f.password.id);
			}
			return execute;
		},
		forgot:function(f){
			var execute = true;
			if(!validate.email(f.emailforgot.value)){
				execute = false;
				validate.err('1',f.emailforgot.id);
			}
			return execute;
		},
		activate:function(f){
			var obj = document.getElementById('submitbutton');
			if(obj){
				if(f.checked){
					obj.disabled = false;
				}else{
					obj.disabled = true;
				}
			}
		}
	};
}();


/* Validation
---------------------------------------------------------------- */

var beaver = function(){
	var bea1, bea2, bea3, bea4, bea5, bea6, rr;
	return {
		toogle:function(current){
			bea1 = document.getElementById('bea1');
			bea2 = document.getElementById('bea2');
			bea3 = document.getElementById('bea3');
			bea4 = document.getElementById('bea4');
			bea5 = document.getElementById('bea5');
			bea6 = document.getElementById('bea6');
			rr = document.getElementById('ratingresult');
			var cur = parseInt(current);
			beaver.reset();
			if(cur>=1){bea1.className = 'state1';}
			if(cur>=2){bea2.className = 'state1';}
			if(cur>=3){bea3.className = 'state1';}
			if(cur>=4){bea4.className = 'state1';}
			if(cur>=5){bea5.className = 'state1';}
			if(cur>=6){bea6.className = 'state1';}
		},
		reset:function(){
			bea1.className = 'state3';
			bea2.className = 'state3';
			bea3.className = 'state3';
			bea4.className = 'state3';
			bea5.className = 'state3';
			bea6.className = 'state3';
		},
		restore:function(){
			var cur = parseFloat(rr.value);
			beaver.reset();
			if(cur<1){bea1.className = 'state2';}
			else if(cur>=1){bea1.className = 'state1';}
			if(cur>1 && cur<2){bea2.className = 'state2';}
			else if(cur>=2){bea2.className = 'state1';}
			if(cur>2 && cur<3){bea3.className = 'state2';}
			else if(cur>=3){bea3.className = 'state1';}
			if(cur>3 && cur<4){bea4.className = 'state2';}
			else if(cur>=4){bea4.className = 'state1';}
			if(cur>4 && cur<5){bea5.className = 'state2';}
			else if(cur>=5){bea5.className = 'state1';}
			if(cur>5 && cur<6){bea6.className = 'state2';}
			else if(cur>=6){bea6.className = 'state1';}
		},
		set:function(current, cartoon){
			rr.value = current;
			$j("#rating").load('/ratings/add/cartoon/'+cartoon+'/rating/'+current,
                            {},
                            function(){
                                $j("#rating").removeClass("rate");
                                $j("#rating").addClass("rated");
                            }
                        );
			beaver.restore();
		}
	};
}();


/* Popup commands
---------------------------------------------------------------- */

var pop = function(){
	return {
		face:function(f){
			darken.show();
			hs.htmlExpand(f,{contentId:'hs-face',width:860,height:635});
		},
		login:function(f){
			pop.kill();
			darken.show();
			hs.htmlExpand(f,{contentId:'hs-login',width:410,height:235});
		},
		loginfacebook:function(f){
			pop.kill();
			darken.show();
			hs.htmlExpand(f,{contentId:'hs-login-facebook',width:730,height:235});
		},
		forgot:function(f){
			pop.kill();
			darken.show();
			hs.htmlExpand(f,{contentId:'hs-forgot',width:410,height:235});
		},
		becomemember:function(f){
			pop.kill();
			darken.show();
			hs.htmlExpand(f,{contentId:'hs-becomemember',width:620,height:275});
		},
		close:function(f){
			darken.kill();
			hs.close(f);
		},
		kill:function(f){
			hs.close();
		}
	};
}();


/* Window events
---------------------------------------------------------------- */

//window.onresize = function(){
//	darken.fixed();
//}