
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

var vartti_search = {
	init: function() {
		
		jQuery('.searchRight .googleIcon').bind('click', function() {
			var self = jQuery(this);
					
			self.hide();

			jQuery('#exec_search').each(function(o) {
				jQuery(this).bind('click', function() {
					return search_validate.validateAndSubmit(jQuery('.search_text'), document.forms['_search_WAR_vartti_haku']);
				});
			});
					
		});
		
		//jQuery('.mainNavigation .searchRight .googleIcon').click();
		
		if (searchComponents.isFreeTextSearchUrl(window.location.href)) {
			jQuery('.searchRight .googleIcon').hide();
			
			jQuery('#exec_search').each(function(o) {
				jQuery(this).bind('click', function() {
					return search_validate.validateAndSubmit(jQuery('.search_text'), document.forms['_search_WAR_vartti_haku']);
				});
			});
			
			
						
		} else {
			jQuery('.searchRight .googleIcon').show();
		}
	}
}

jQuery(document).ready(
	function() {
		vartti_search.init();
		searchComponents.setSearch(window.location.href, '.headerSearch');
		searchComponents.setSearch(window.location.href, '.bottomSearch');
		
	}
);

Liferay.Portlet.ready(
	function(portletId, jQueryObj) {
	}
);

jQuery(document).last(
	function() {
	}
);

var searchComponents = {
	
	isFreeTextSearchUrl: function (url) {
		urlSearchType = this.retrieveSearchTypeByUrl (url);
		urlSearchVal = this.retrieveSearchValByURL(url, urlSearchType);
		
		if (urlSearchType && urlSearchType.length>0 && urlSearchVal && urlSearchVal.length>0) {
			return true;
		} else {
			return false;
		}
	}

, setSearch: function (url, formName) {

	varttiRadio = ''; 
	webRadio = '';
	
	var varttiRadio = jQuery(formName+' .varttiRadio');
	var webRadio = jQuery(formName+' .webRadio');
	
  searchComponents.activateRadioByUrl(varttiRadio, webRadio, url);
  
  urlSearchType = searchComponents.retrieveSearchTypeByUrl (url);
  
  if (this.isFreeTextSearchUrl(url)) {
    
    urlSearchVal = this.retrieveSearchValByURL(url, urlSearchType);
    if (urlSearchVal && urlSearchVal.length>0) {
      var searchField = jQuery(formName+' #_search_WAR_vartti_searchtext');
      searchField.val(urlSearchVal);
    }
  }
  

}, 

retrieveSearchTypeByUrl : function (url) {

var webRegexp = /.*\/haku\/web\/.*/
var varttiRexexp = /.*\/haku\/vartti\/.*/

if (webRegexp.exec(url)) {
  return 'web'
} else if (varttiRexexp.exec(url)) {
  return 'vartti';
} else {
  return '';
}
}, 

retrieveSearchValByURL: function (url, urlSearchType) {
  searchStrPrefix = '';
  if (urlSearchType=='web') {
      searchStrPrefix = '/haku/web/';
  } else if (!urlSearchType || urlSearchType=='vartti') {
      searchStrPrefix = '/haku/vartti/';
  } else {
    return searchStrPrefix;
  }
  
  startIndex = url.indexOf(searchStrPrefix)+searchStrPrefix.length;  
  endIndex = url.indexOf('/',startIndex);
  
  returnStr = url.substring(startIndex,endIndex);
  returnStr = returnStr.replace(/PRCT/g, "%")
  returnStr = Url.decode(returnStr);
  returnStr = returnStr.replace(/\+/g, " ")
  return returnStr;
},

activateRadioByUrl: function (varttiRadio, webRadio, url) {

  urlSearchType = searchComponents.retrieveSearchTypeByUrl (url);

  if (urlSearchType=='web') {
      webRadio.attr('checked', 'checked');
      return webRadio;
  } else if (!urlSearchType || urlSearchType=='vartti') {
      varttiRadio.attr('checked', 'checked');
      return varttiRadio;
  }
}
}

jQuery.fn.extend({
    get_left: function() {
        var x = this[0].offsetLeft;
        var temp_obj = this[0].offsetParent;
    
        while(temp_obj!=null) {
            x += temp_obj.offsetLeft;
            temp_obj = temp_obj.offsetParent;
        }
        return x;
	},
	
	get_top: function() {
        var y = this[0].offsetTop;
        var temp_obj = this[0].offsetParent;
        while(temp_obj!=null) {
            y += temp_obj.offsetTop;
            temp_obj = temp_obj.offsetParent;
        }
        return y;
	}
});

var vartti_main = {
	setDefaultValueFromInput: function(target, source) {
		var target = jQuery(target);
		var source = jQuery(source);
		
		if(target.val()=='') {
			target.val(source.val());
		} 
	}
}

var tabs_controller = {
	setSelected: function(selectedElemClass) {
		if (!this.isAddArticle()) {
			jQuery(selectedElemClass).addClass('selected');
		}
	},
	
	
	
	isAddArticle: function() {
			url = ''+	window.location;
			if (url.indexOf('uusijuttu')>-1) {
				return true;
			} else {
			
				return false;
			}	
	},
	
	setAddArticleTab: function() {
			jQuery('.mainNavigation .menu .selected').removeClass('selected');
			jQuery('.mainNavigation .menu .uusijuttu').addClass('selected');
			jQuery('#hidden').show();
	},
	
	setAddArticleIfSelected: function() {
		if (this.isAddArticle()) {
			this.setAddArticleTab();
		}
	},
	
	directToAddArticle: function() {
		window.location.href='#uusijuttu';
	}
}

var search_validate = {
	validateAndSubmit: function (textField, form) {
		
		textField.val(textField.val()+'');
		
		if (textField.val()) {
			
			textField.val(textField.val()+''.trim());
			
			if (textField.val()+''.length==0) {
				alert('Hakuparametri ei voi olla tyhj\u00E4');
				return false;
			} else {
				form.submit();
			}
		} else {
			alert('Hakuparametri ei voi olla tyhj\u00E4');
			return false;
		} 
		
	}
}


var Url = {

       // public method for URL encoding
       encode : function (string) {
                return escape(this._utf8_encode(string));
       },

       // public method for URL decoding
        decode : function (string) {
               return this._utf8_decode(unescape(string));
       },

       // private method for UTF-8 encoding
       _utf8_encode : function (string) {
               string = string.replace(/\r\n/g,"\n");
               var utftext = "";

               for (var n = 0; n < string.length; n++) {
                       var c = string.charCodeAt(n);
                       if (c < 128) {
                               utftext += String.fromCharCode(c);
                       } else if((c > 127) && (c < 2048)) {
                               utftext += String.fromCharCode((c >> 6) | 192);
                               utftext += String.fromCharCode((c & 63) | 128);
                       } else {
                               utftext += String.fromCharCode((c >> 12) | 224);
                               utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                               utftext += String.fromCharCode((c & 63) | 128);
                       }
       }

               return utftext;
       },

       // private method for UTF-8 decoding
       _utf8_decode : function (utftext) {
                var string = "";
                var i = 0;
                var c = c1 = c2 = 0;

               while ( i < utftext.length ) {
                        c = utftext.charCodeAt(i);
                       if (c < 128) {
                               string += String.fromCharCode(c);
                               i++;
                        } else if((c > 191) && (c < 224)) {
                                  c2 = utftext.charCodeAt(i+1);
                               string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                               i += 2;
                        } else {
                                  c2 = utftext.charCodeAt(i+1);
                               c3 = utftext.charCodeAt(i+2);
                               string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                                i += 3;
                         }
                 }
               return string;
        }
}