
var fadeActive = false;

function activateTextField(el,password){
	if(el.className.trim() == "form inactive"){
		el.className = "form";
		el.value = "";
		if(password){
			changeInputType(el, "password", true);
		}
	}else if(el.className.trim() == "form inactive form_error"){
		el.className = "form";
		el.value = "";
		if(password){
			changeInputType(el, "password", true);
		}
	}else if(el.className.trim() == "form inactive mobilenumber"){
		el.className = "form mobilenumber";
	}else if(el.className.trim() == "form_half form_email inactive"){
		el.value = "";
    el.className = "form_half form_email";
	}  else if(el.className.trim() == "form_half inactive"){
  		el.value = "";
      el.className = "form_half";
  	}  else if(el.className.trim() == "form_textarea inactive"){
    		jQuery(el).val('');
        el.className = "form_textarea";
  	}
}

function changeInputType(old, to, focus) {
  var neo = document.createElement('input');
  neo.type = to;
  if(old.size) neo.size = old.size;
  if(old.value) neo.value = old.value;
  if(old.name) neo.name = old.name;
  if(old.id) neo.id = old.id;
  if(old.className) neo.className = old.className;
  if(old.onfocus) neo.onfocus = old.onfocus;
  if(old.onblur) neo.onblur = old.onblur;
  var value = old.value;
  old.parentNode.replaceChild(neo,old);
  if(value) neo.value = value;
  if(true == focus) {
    window.tel = neo;
    setTimeout("document.getElementById(window.tel.id).focus();",1);
  }
  return neo;
}

function showLoginBox(){
	
	if(!fadeActive){
	
		fadeActive = true;
	
		new Effect.Appear('header_login', { duration: 0,fps:100,transition: Effect.Transitions.linear,afterFinish: function(){ fadeActive = false;} });
		
		//monitor document click
		Event.observe($('fullwrapper'), 'mousedown', handleWrapperClick);
		Event.observe($('header_login'), 'keydown', handleLoginKeyDown);
		
	}
	
}

function hideLoginBox(){
	
	if(!fadeActive){
	
		fadeActive = true;
		
		new Effect.Fade('header_login', { duration: 0,fps:100,transition: Effect.Transitions.linear,afterFinish: function(){ fadeActive = false;}  });

		
		//monitor document click
		Event.stopObserving($('fullwrapper'), 'mousedown', handleWrapperClick);
		Event.stopObserving($('header_login'), 'keydown', handleLoginKeyDown);
		
	}
	
}

function handleLoginKeyDown(e){
	
	if(e.keyCode==13){
		login();
	}

}

function login(){

	var username = $('field_login_username').value;
	var password = $('field_login_password').value;
//	var rememberme = $('field_login_rememberme').checked;
	var redirect = $('redirect') ? $('redirect').value : 'account';
	new Ajax.Request(document.base_url+'ajax/login', {method:'post', postBody:'action=login&username='+username+"&password="+password+"&redirect="+redirect, onComplete:loginResponse}); //+"&rememberme="+rememberme

}

function loginResponse(t){
	if(t.responseText!="-3" && t.responseText!="-2" && t.responseText!="-1" && t.responseText!="0"){
		location.href = document.base_url + t.responseText;
	} else if(t.responseText=="-1") {
	  jQuery('#login_username_part .error_msg').text('Username does not exist.');
	  jQuery('#login_password_part .error_msg').text('');
	  $('field_login_username').className = "form login user form_error";
		$('field_login_password').className = "form login pass form_error";	
	} else if(t.responseText=="-2") {
	  jQuery('#login_username_part .error_msg').text('');
	  jQuery('#login_password_part .error_msg').text('Please check your password.');
		$('field_login_password').className = "form login pass form_error";	
	}
        else if(t.responseText=="-3") {
	  jQuery('#login_username_part .error_msg').text('Username does not exist.');
	  jQuery('#login_password_part .error_msg').text('');
		$('field_login_username').className = "form login user form_error";
	}
	
	
}

handleWrapperClick = function(event){
	
	if(event.target.id!="header_login"){
	
		hideLoginBox();
		
	}

}

function checkTextField(el,text_to_replace){
	
	if(el.value==""){
		if(el.className.trim() == "form"){
			el.className = "form inactive";
			el.value = text_to_replace;
			if(el.type == 'password')	changeInputType(el, "text");
		}  else if(el.className.trim() == "form_half form_email"){
  		el.className = "form_half form_email inactive";
			el.value = text_to_replace;
			if(el.type == 'password')	changeInputType(el, "text");
  	}   else if(el.className.trim() == "form_half"){
    		el.className = "form_half inactive";
  			el.value = text_to_replace;
  			if(el.type == 'password')	changeInputType(el, "text");
    	} 
	}
	if(el.className.trim() == "form_textarea"){
	  if(""==jQuery(el).val()) {
    	jQuery(el).val(text_to_replace);
      el.className = "form_textarea inactive";
    }
  }

}

function getTimeZoneOffset(){
	var dt = new Date();
	return dt.getTimezoneOffset()/60; 
}

function saveTimeZoneOffset(){

	var tmp = new Date().toString();
	
	var timezone_name = getTimeZoneAbbr();

	var offset = getTimeZoneOffset();
	
	new Ajax.Request(document.base_url+'ajax/timezone', {method:'post', postBody:'action=saveoffset&offset='+offset+"&timezone_name="+timezone_name});

}

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

function wordwrap( str, int_width, str_break, cut ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Nick Callen
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Sakimori
    // +   bugfixed by: Michael Grier
    // *     example 1: wordwrap('Kevin van Zonneveld', 6, '|', true);
    // *     returns 1: 'Kevin |van |Zonnev|eld'
    // *     example 2: wordwrap('The quick brown fox jumped over the lazy dog.', 20, '<br />\n');
    // *     returns 2: 'The quick brown fox <br />\njumped over the lazy<br />\n dog.'
    // *     example 3: wordwrap('Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.');
    // *     returns 3: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod \ntempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim \nveniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea \ncommodo consequat.'
 
    // PHP Defaults
    var m = ((arguments.length >= 2) ? arguments[1] : 75   );
    var b = ((arguments.length >= 3) ? arguments[2] : "\n" );
    var c = ((arguments.length >= 4) ? arguments[3] : false);
 
    var i, j, l, s, r;
 
    str += '';
 
    if (m < 1) {
        return str;
    }
 
    for (i = -1, l = (r = str.split(/\r\n|\n|\r/)).length; ++i < l; r[i] += s) {
        for(s = r[i], r[i] = ""; s.length > m; r[i] += s.slice(0, j) + ((s = s.slice(j)).length ? b : "")){
            j = c == 2 || (j = s.slice(0, m + 1).match(/\S*(\s)?$/))[1] ? m : j.input.length - j[0].length || c == 1 && m || j.input.length + (j = s.slice(m).match(/^\S*/)).input.length;
        }
    }
    
    return r.join("\n");
}

jQuery(function($){
	$("#hi-username-wrap").live('mouseover', function(){
    $("#hi-login-menu").show();
  });
  $("#hi-username-wrap").live('mouseout', function(){
    $("#hi-login-menu").hide();
  });
	$("#fb-tischen").live('click', function(){
	  fb.loadAnchor(document.base_url+'fb/tischen', 'theme:custom width:470 height:360 scrolling:no outerBorder=0 innerBorder=1 showClose:false modal:true padding:15 innerBorder:0 disableScroll:false shadowType=halo overlayOpacity:0.001');
	});
	$("#login_with_facebook").live('click', function() {
    FB.login(function(response){
      if("connected" == response.status) {
        $.ajax({
          url: document.base_url+'fb/check',
          type: "POST",
          dataType:"json",
          success: function(data) {
            if('login' == data.state || 'added' == data.state) {
              location.href = document.base_url + 'account';
            } else if('exist' == data.state) {
              fb.loadAnchor(document.base_url+'fb/merge', 'theme:custom width:470 height:360 scrolling:no outerBorder=0 innerBorder=1 showClose:false modal:true padding:15 innerBorder:0 disableScroll:false shadowType=halo overlayOpacity:0.001');
            } else if('linked' == data.state) {
              $.alerts.dialogClass = "confirmed"; // set custom style class
			        jAlert('We have successfully linked your Facebook profile to your Tischen account.',
			               'Success!',
			               function() {
                       location.href = document.base_url + 'account';
			               });
			        $.alerts.dialogClass = null; // reset to default
            }
          }
        });  
      }
    },
    {perms:'email'});
  });
  
  $("#h-nav-invite, #my-promo-page").bind("click", function(){
	fb.loadAnchor(document.base_url+'fb/invite', 'theme:custom width:660 height:593 scrolling:auto showClose:false modal:true padding:15 innerBorder:1 outerBorder:0 disableScroll:false shadowType=halo overlayOpacity:0');
  });

  $("#h-nav-connect-fb").live('click', function() {
    FB.login(function(response){
      if("connected" == response.status) {
        $.ajax({
          url: document.base_url+'fb/check',
          type: "POST",
          dataType:"json",
          success: function(data) {
            if('login' == data.state || 'added' == data.state) {
              location.reload(true);
            } else if('exist' == data.state) {
              fb.loadAnchor(document.base_url+'fb/merge', 'theme:custom width:470 height:360 scrolling:no outerBorder=0 innerBorder=1 showClose:false modal:true padding:15 innerBorder:0 disableScroll:false shadowType=halo overlayOpacity:0.001');
            } else if('linked' == data.state) {
              $.alerts.dialogClass = "confirmed"; // set custom style class
			        jAlert('We have successfully linked your Facebook profile to your Tischen account.',
			               'Success!',
			               function() {
                       location.reload(true);
			               });
			        $.alerts.dialogClass = null; // reset to default
				    }
          }
        });  
      }
    },
    {perms:'email'});
  });
  
});


