function PreventPasting(e) {
 	if (window.event) {
		var key = window.event.keyCode;
		var isCtrl = window.event.ctrlKey;
		var isCmd = window.event.metaKey;
	} else {
		var key = e.which;
		var isCtrl = e.ctrlKey;
		var isCmd = e.metaKey;
	}
	
 	if(isCtrl || isCmd) {
		if (key == 86 || key == 118) { return false; };
	} return true;
}

function updateChatterbox() {
	new Ajax.Request("ChatterboxGet.asp", {onComplete: function(e) {
		$('posts').update('');
		e.responseText.evalJSON().chatterbox.reverse().each(function(b) {
			if (decodeURIComponent(b.post) != "undefined") {
				$('posts').insert({top: template.evaluate({
					id: b.post_id, user_id: b.user_id, username: b.username, picture: b.picture, gender: b.gender, created_at: b.created_at, r: b.r, post: b.post, bc: b.bc, bch: b.bch
				})});
			}
		});
	}});	
}

function showMoreOffers(e) {
	$$('.offer').invoke('show');
	e.parentNode.hide();
	$$('.offer').last().setStyle({borderBottom: '0', marginBottom: '-15px'});
}

function gbPopup(url) {
	window.open(url, 'gb', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=265,height=250');
	return false;
}

function urldecode(str) {
	str = str.replace('+', ' ');
	str = unescape(str);
	return str;
}

function CreateOrder(id, points, value, lang) {
	var text;
	
	switch(lang) {
		case 'sv': 		text = 'Är du säker på att du vill växla dina ' + points + ' poäng mot ett presentkort värt ' + value + ' kr?'; break;
		case 'sv-gp': text = 'Är du säker på att du vill växla dina ' + points + ' poäng mot prylen värt ' + value + ' kr?'; break;
	}

	if (!confirm(text)) {
		return false;
	} else {
		window.location.href='CreateOrderSave.asp?id=' + id;
	}
}

function ProfilePictureUploadCheck(lang) { 
	if (document.uploadProfileImg.file.value.length>2)
		return true;
	else {
		switch(lang) {
			case 'sv': 	alert("Du måste välja en bild för att ladda upp."); break;
		}
	  
		return false; 
	} 
} 

function Like(element, ot, oid, saved_text) {
	element = $(element);
	
	element.hide();
	
	new Ajax.Request("Like.asp", {
		parameters: {object_type: ot, object_id: oid},
		onComplete: function(r) {
			element.update(r.responseText == '1' ? 'Sluta gilla' : 'Gilla').appear();
		} 
	});
}

var UserValidation = Class.create({
	initialize: function() {
		
	},
	
	error: function(e, bln) {
		if (bln) {
			e.previousSiblings()[0].hide();
			e.previousSiblings()[1].show();
		} else {
			e.previousSiblings()[1].hide();
			e.previousSiblings()[0].show();
		}
	},

	username: function(e) {
		e.value = (e.value.match(/[a-zåäö0-9]+/i)) ? e.value : '';
		
		new Ajax.Request('Ajax/CheckUsername.asp?username=' + e.value, {
			onComplete: function(t) {
				this.error(e, t.responseText == '1');
				
				if (e.value == '') {
					this.error(e, true);
				}
			}.bind(this)
		});
	},
	password: function(e) { this.error(e, (e.value.length < 6 || e.value.length > 30)) },
	firstname: function(e) { this.error(e, e.value == ''); },
	lastname: function(e) { this.error(e, e.value == ''); },
	address: function(e) { this.error(e, e.value == ''); },
	email: function(e) { this.error(e, !e.value.match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)); },
	postcode: function(e) {
		var postaddress = $('postaddress')
  	e.value = (e.value.match(/\d+/)) ? e.value.match(/\d+/) : '';
		
		new Ajax.Request('Ajax/getPostAddress.asp?postcode=' + e.value, {
		  onComplete: function(t) {
		  	if (t.responseText == 'norsk') {
		  		if (e.value.match(/\d{3,6}/)) {
		  			this.error(e, false);
		  		} else {
		  			this.error(e, true);
		  		}
		  	} else {
		  		postaddress.value = urldecode(t.responseText);
			  	this.error(e, postaddress.value == '');
		  	}
		  }.bind(this)
		});
	},
//	postaddress: function(e) { this.error(e, e.value == ''); },
	gender: function(e) { this.error(e, e.value == ''); },
	address: function(e) { this.error(e, e.value == ''); },
	
	gender: function(e) { $('gender_accept').show(); }
});


var FaceBook = Class.create({
  initialize: function(api_key) {
    FB.init(api_key);
  },
  
  logout: function(url) {
  	FB.Connect.logoutAndRedirect(url);
  }
});

var TipOnFaceBook = Class.create(FaceBook, {
	initialize: function($super, api_key, auth, miniumFriends) {
		$super(api_key);
		
		this.auth = auth;
		this.miniumFriends = miniumFriends;		
	},
	
	run: function() {
		var mf = this.miniumFriends;
	
		FB_RequireFeatures(["Api"], function(){
			var api = FB.Facebook.apiClient;

	    FB.Connect.requireSession(function(exception){
				$('about_user').show();

         api.friends_get(new Array(), function(result, exception){
         	
         		var friends_count = result.length;
         		
         		if (friends_count >= mf) {
         			$('publish_button').show();
         		} else {
         			$('not_enough_friends').show();
         			$('friends_count').update(friends_count);
         		}
         });
	    });
		});	
	},
	
	publish: function(attachment, actionLink, header) {
   	$('about_user').hide();
   	$('loader').show();
		FB.Connect.streamPublish('', attachment, actionLink, null, header, this.steamCallback);
	},
	
	steamCallback: function(post_id, exception) {
		if (post_id != "null" && post_id != null) {
    	new Ajax.Request("/Facebook/point.asp?h=" + TipOnFaceBook.auth + "&pid=" + post_id, {onComplete: function() {  		
    		$('loader').hide();
	    	$('offer_done').show();
    	}});
  	}
	}
});
